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")
A voir également:
- Tv orange chargement en boucle
- Décodeur tv orange gratuit - Accueil - Box & Connexion Internet
- Google tv streamer - Accueil - TV & Vidéo
- Comment utiliser chromecast sur tv - Guide
- Pas de signal tv - Guide
- Regarder tv gratuitement sans télécharger - Guide
2 réponses
Bonjour.
Lorsque tu fais
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.
Lorsque tu fais
List = 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.