我正在创建一种数据库,使用从用户读入的列表。当用户输入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