Problème de boucle
d0wnhill_Skateur
-
d0wnhill_Skateur -
d0wnhill_Skateur -
Bonjour,
J'ai écrit un programme pour générer un mot aléatoirement en fonction de paramètres renseignés, pour 1 mot à générer, ça marche nickel, mais pour plusieurs mots, ça crash. Je ne comprend pas :
J'ai écrit un programme pour générer un mot aléatoirement en fonction de paramètres renseignés, pour 1 mot à générer, ça marche nickel, mais pour plusieurs mots, ça crash. Je ne comprend pas :
import os
import random
def CMot():
mot = ""
List = Lettres
N = 0
while i < Taille:
lettre = random.choice(List)
mot += lettre
List.remove(lettre)
N += 1
return mot
Lettres = input("Entrez les lettres en mettant des virgules: ")
Lettres = Lettres.split(",")
Taille = input("Entrez le nombre de lettres du mot: ")
Taille = int(Taille)
lent = input("Entrer le nombre de mots: ")
lent = int(lent)
i = 0
while i < lent:
mot = CMot()
print(mot)
i += 1
os.system("pause")
2 réponses
-
Bonjour.
Lorsque tu faisList = Lettres
, List et Lettres pointent tous deux vers le même objet, ce qui fait que les opérations de suppression, ajout, etc, affecteront ces deux variables.
>>> a = [1, 2, 3] >>> b = a >>> a.pop() 3 >>> b [1, 2]
Pour contrer cela, il faut travailler sur une copie de ta liste, via la méthode copy de list. Et attention, dans la condition du while de ta fonction, i n'existe pas, c'est N. -