CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Python] Détecte les doublons d'une liste..

-Riguel-
-Riguel-
Niveau 57
22 octobre 2015 à 21:41:27

Salut à tous, j'ai besoin d'aide. J'ai un programme à écrire en Python, qui après énumération de nombres séparés de virgules, affiche False si la liste contient des doublons, et True si non.

Le truc c'est qu'on ne doit pas utiliser la fonction "return"... De l'aide ? Là je suis totalement coincé :-(

Merci.

JerryDayPonay
JerryDayPonay
Niveau 33
22 octobre 2015 à 21:47:38

Quel est le problème avec return ?
uneListe.count(x) retourne le nombre d’occurrences de x dans la liste.

-Riguel-
-Riguel-
Niveau 57
22 octobre 2015 à 21:56:32

Au passage désolé de la faute du titre, j'ai mal édité... :(

-Riguel-
-Riguel-
Niveau 57
22 octobre 2015 à 21:58:12

Bah en fait dans l'noncé c'est interdit d'utiliser return. On n'a jamais fait ce genre d'exo donc je suis un peu perdu...
Et du coup le fait de les retourner, ça fait quoi ? Tu peux m'expliquer ?

Merci de ta réponse rapide.

PLSTotale
PLSTotale
Niveau 6
22 octobre 2015 à 22:19:30

Afficher= print different de return = resultat

TintinMage
TintinMage
Niveau 10
22 octobre 2015 à 22:42:22

Tu sais faire une boucle en python ? Evaluer une condition ?

dark_drow
dark_drow
Niveau 15
22 octobre 2015 à 22:43:48

j'imagine que faire
if len(maliste) == len(set(maliste)): print 'True' else: print 'False c'est pas autorisé ? :p

-Riguel-
-Riguel-
Niveau 57
22 octobre 2015 à 22:51:25

Désolé du retard.

Ecrire un programme qui demande à l'utilisateur d'entrer des entiers séparés de virgules, et qui affiche True si cette suite est sans doublons, False si elle en contient.
Ne pas utiliser la fonction return.
A toutes fins utiles on donne t=list(eval(input(" Veuillez entrer des nombres séparés par des virgules")))

Je sais faire des boucles avec des conditions, mais comment traduire un doublon avec une condition je sais pas...

-Riguel-
-Riguel-
Niveau 57
22 octobre 2015 à 22:52:52

Le 22 octobre 2015 à 22:43:48 dark_drow a écrit :
j'imagine que faire
if len(maliste) == len(set(maliste)): print 'True' else: print 'False c'est pas autorisé ? :p

maliste ça veut dire quoi ?

-Riguel-
-Riguel-
Niveau 57
22 octobre 2015 à 23:02:50

Ok et le set veut dire quoi dans ce cas ? Ensemble ?

dark_drow
dark_drow
Niveau 15
22 octobre 2015 à 23:03:48

Vu que c'est un exercice et que tu as l'air de débuter je ne te conseille pas ma méthode mais plutôt d'utiliser des "for" et "if"
Tu sais parcourir une liste ?

Sinon un set c'est une liste de valeur unique mais tu apprendras cela plus tard je pense

Message édité le 22 octobre 2015 à 23:05:02 par dark_drow
-Riguel-
-Riguel-
Niveau 57
22 octobre 2015 à 23:25:45

Hum okay.. Faut faire L[x] ?

Mais comment énoncer if L[x] = L[y] sachant qu'il peut y avoir une infinité de nombres dans la suite ?

Candystand
Candystand
Niveau 10
22 octobre 2015 à 23:33:37

L'algo serait le suivant:

i = 0;
Tant que i < longueurListe Faire:
      nombre = liste[i];
      j = 0;
      Tant que j < longueurListe Faire:
           Si nombre == liste[j]:
                print("True")
           Sinon:
                 j++
      i++
print("False")

Fin

Après tu traduis ça en Python :hap:

-Riguel-
-Riguel-
Niveau 57
22 octobre 2015 à 23:52:23

Heu le "j++" ça veut dire j=j+1 ?
et nombre c'est quelle variable ?

-Riguel-
-Riguel-
Niveau 57
22 octobre 2015 à 23:55:27

Oui tu as tout à fait raison, je demande juste quelques explications.

dark_drow
dark_drow
Niveau 15
23 octobre 2015 à 00:09:22

déjà en informatique tu as pas d'infinité si ça peut t'aider ;)

-Riguel-
-Riguel-
Niveau 57
23 octobre 2015 à 00:11:57

mais i c'est un rang, et tant qu'il est inférieur à la longueur de la liste, je vois pas le rapport avec le fait qu'il y ait un doublon ? :-(

Candystand
Candystand
Niveau 10
23 octobre 2015 à 00:12:16

Le 22 octobre 2015 à 23:52:23 -Riguel- a écrit :
Heu le "j++" ça veut dire j=j+1 ?
et nombre c'est quelle variable ?

Oui j++ c'est j = j + 1 ou encore j += 1

nombre correspond à la valeur d'un maillon de ta liste, en l'occurence liste[i] ici.

Mais comme l'a dit bluepoint, le mieux est de tester par toi même, je t'ai beaucoup trop aidé je trouve

Candystand
Candystand
Niveau 10
23 octobre 2015 à 00:14:42

Le 23 octobre 2015 à 00:11:57 -Riguel- a écrit :
mais i c'est un rang, et tant qu'il est inférieur à la longueur de la liste, je vois pas le rapport avec le fait qu'il y ait un doublon ? :-(

Jte traduis l'algo:

Tu dois parcourir ta liste, récupérer les valeurs une à une (le premier Tant que), et cette valeur que tu récupère tu la compares à toutes les autres valeurs de ta liste (le second Tant que).

D'ailleurs je me dois de corriger mon algo, qui renverra tout le temps true :hap:

i = 0;
Tant que i < longueurListe Faire:
      nombre = liste[i];
      j = 0;
      Tant que j < longueurListe Faire:
           Si nombre == liste[j] ET j != i:
                print("True")
           Sinon:
                 j++
      i++
print("False")

Fin
Message édité le 23 octobre 2015 à 00:15:32 par Candystand
hexabeast
hexabeast
Niveau 9
23 octobre 2015 à 00:19:00

Le 22 octobre 2015 à 23:33:37 Candystand a écrit :

i = 0;
Tant que i < longueurListe Faire:
      nombre = liste[i];
      j = 0;
      Tant que j < longueurListe Faire:
           Si nombre == liste[j] ET j != i:
                print("True")
           Sinon:
                 j++
      i++
print("False")

Fin

Là ça fait une boucle infinie de print("True") si l'algo trouve un doublon, c'est pas très propre ^^

En plus ça doit afficher True si y'a PAS de doublon et False si y'en a, pas l'inverse ;)

Message édité le 23 octobre 2015 à 00:20:37 par hexabeast
Sujet fermé pour la raison suivante : Plus besoin de poster dessus
Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment