私は、ユーザから読み込まれたリストを使って、ある種のデータベースを作成しています。ユーザーがfinish
と入力すると、whileループを停止します。しかし、何らかの理由でループを解除するためにfinish
TWICEと入力する必要があります。ループが壊れない
また、リストは返された後で空です。
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
私はそれが
readNames()
print readNames()
で働いていた場合にも、ここで出力
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
[]
>>>
私のためにうまく動作します(IDLEで)。それ以外にも、無限ループを作るもっと簡単な方法があります( 'True:'で十分です;なぜ偽の変数+条件を作りますか?私は実際に 'count = -1'を探していました...)。また、 'break'は不要です(' return'は関数を終了し、ループを終了します)。 – delnan
私にとってはうまく動作しますが、いくつかの注意があります:あなたは無限ループのために 'while True:'を実行するだけで、 'break'に達することはないので、' break'する必要はありません。 'names = readNames()'は私にとってうまくいきます。 PS:あなたのインデントを修正しました。 –