Python 使用main函数时会出现无限循环
我在玩循环,为即将到来的项目做准备。当使用while loop+main函数时,我发现了无限循环Python 使用main函数时会出现无限循环,python,while-loop,infinite-loop,main,Python,While Loop,Infinite Loop,Main,我在玩循环,为即将到来的项目做准备。当使用while loop+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?")
#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不会生成无限循环,尽管我没有任何返回
但当我使用数字1,以便将来可以将name变量用于不同的函数时,它会生成无限循环
我能知道它发生的原因吗?在保持name变量嵌套在main函数中的同时,如何修复它
谢谢 这是因为在版本2中,您在每次循环迭代时都从控制台读取输入(这一行:name=input(“吃或喝:”)
)。所以它仍然是一个无限循环,但这次它会等待每次迭代,直到您提供一些输入
只需将以下行添加到您的选项中即可解决此问题:name=input(“吃或喝:”)
,或使用:
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(True)
循环将永远运行,直到返回一个值或中断
以获取注释为止。但问题是,我需要在将来将我的name变量用于不同的函数,以便它需要保持在main函数下。