我正在創建一種數據庫,使用從用戶讀入的列表。當用戶輸入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中)。除此之外,還有更簡單的方法來實現無限循環('while True:'就足夠了;爲什麼要創建一個假變量+條件?我實際上是在尋找'count = -1' ......)。另外,'break'是不需要的('return'退出函數並因此退出循環)。 – delnan 2010-11-20 16:46:33
對我來說工作很好,但有一些注意事項:你可以簡單地在while循環中做'while:',你在返回之後也不需要'break',因爲'break'永遠不會到達。 'names = readNames()'對我來說工作得很好。 PS:我已經修好了你的縮進。 – 2010-11-20 16:47:13