正在玩循环来准备我的传入项目。当使用while + + main函数时,我发现了无限循环
#1
def choice(name):
while True:
if name == "Eat"
print("I don't want to eat now")
elif name == "Drink"
print("NOPE")
else:
print("o.O?")
def main():
name = input("Eat or Drink ? :")
choice(name)
main()
#2
while True:
name = input("Eat or Drink ? :")
if name == "Eat"
print("I don't want to eat now")
elif name == "Drink"
print("NOPE")
else:
print("o.O?")
尽管我没有任何返回
,但是数字2不会产生无限循环但是当我使用Number 1,以便将来可以将name变量用于不同的函数时,它会生成无限循环。
我能知道它发生的原因吗?以及如何在保持名称变量嵌套在main函数中的同时修复它?
谢谢!
答案 0 :(得分:0)
这是因为在版本#2中,您在每次循环迭代时从控制台读取输入(此行:name = input("Eat or Drink ? :")
)。所以它仍然是一个无限循环,但这次它等待每次迭代,直到你提供一些输入。
您只需将此行name = input("Eat or Drink ? :")
添加到choice
功能中即可解决此问题,或使用:
for i in range(100):
...
如果要限制迭代次数。
编辑:
好的,所以从while True
函数中取出choice
并将其放入main中,如下所示:
def main():
while True:
name = input("Eat or Drink ? :")
choice(name)
... other functions using name