使用 main 函数时出现无限循环
Infinite Loop occurs when using main function
正在玩循环,为即将到来的项目做准备。我在使用 while loop + main function
时发现了无限循环
#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?")
尽管我没有任何 return
,但数字 2 不会生成无限循环
但是当我使用Number 1,以便我以后可以在不同的函数中使用name变量时,它会产生无限循环。
我能知道它发生的原因吗?以及如何在保持 name 变量嵌套在 main 函数中的同时修复它?
谢谢!
这是因为在版本 #2 中,您在每次循环迭代时都从控制台读取输入(这一行:name = input("Eat or Drink ? :")
)。所以它仍然是一个无限循环,但这次它会等待每次迭代,直到您提供一些输入。
您只需将此行添加到您的 choice
函数中即可解决此问题:name = input("Eat or Drink ? :")
或使用:
for i in range(100):
...
如果要限制迭代次数
编辑:
好的,所以从 choice
函数中取出 while True
并将其放入 main,如下所示:
def main():
while True:
name = input("Eat or Drink ? :")
choice(name)
... other functions using name
正在玩循环,为即将到来的项目做准备。我在使用 while loop + main function
时发现了无限循环#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?")
尽管我没有任何 return
,但数字 2 不会生成无限循环但是当我使用Number 1,以便我以后可以在不同的函数中使用name变量时,它会产生无限循环。
我能知道它发生的原因吗?以及如何在保持 name 变量嵌套在 main 函数中的同时修复它?
谢谢!
这是因为在版本 #2 中,您在每次循环迭代时都从控制台读取输入(这一行:name = input("Eat or Drink ? :")
)。所以它仍然是一个无限循环,但这次它会等待每次迭代,直到您提供一些输入。
您只需将此行添加到您的 choice
函数中即可解决此问题:name = input("Eat or Drink ? :")
或使用:
for i in range(100):
...
如果要限制迭代次数
编辑:
好的,所以从 choice
函数中取出 while True
并将其放入 main,如下所示:
def main():
while True:
name = input("Eat or Drink ? :")
choice(name)
... other functions using name