Je crée une sorte de base de données, en utilisant une liste qui est lue depuis l'utilisateur. Lorsque l'utilisateur entre finish
, je veux que la boucle while s'arrête. Cependant, pour une raison quelconque, je dois entrer finish
DEUX FOIS pour qu'il casse la boucle.La boucle ne se casse pas
De plus, la liste est vide après avoir été renvoyée.
def readNames():
nameList = []
count = 0
while count != -1: #infinite loop
addList = raw_input("Please enter a name: ")
if addList == 'finish':
return nameList
break
nameList.append(addList)
print nameList
Je l'invoque et de vérifier si elle a travaillé avec
readNames()
print readNames()
De plus, voici la sortie
Please enter a name: Dave
['Dave']
Please enter a name: Gavin
['Dave', 'Gavin']
Please enter a name: Paul
['Dave', 'Gavin', 'Paul']
Please enter a name: Test1
['Dave', 'Gavin', 'Paul', 'Test1']
Please enter a name: finish
Please enter a name: finish
[]
>>>
Fonctionne bien pour moi (in IDLE). En dehors de cela, il existe des moyens beaucoup plus faciles de faire une boucle infinie ('alors que True:' est suffisant, pourquoi créer une variable fictive + condition? Je cherchais en fait le 'count = -1' ...). De plus, le 'break 'n'est pas nécessaire (' return' quitte la fonction et donc la boucle). – delnan
Fonctionne bien pour moi, quelques notes cependant: Vous pouvez simplement faire 'while True:' pour votre boucle infinie, vous n'avez pas non plus besoin de 'break' après votre retour car le' break' ne sera jamais atteint. 'names = readNames()' fonctionne très bien pour moi. PS: J'ai réparé votre indentation. –