我正在尝试使用我创建的这个程序,我希望程序不要重复这个选项很多次这里是程序:
# A Program to show how to use a menu
menu=int(input("What would you like? \n\
1. A compliment \n\
2. An insult \n\
3. A proverb \n"))
y=True
while y==True:
if menu==1: #compliment
print ("You look nice today")
elif menu==2: #insult
print("You smell")
elif menu==3: #proverb
print("A bird in the hand is worth two in the bush!")
else:
y==False
print("Invalid option")
break
当我输入示例2的选项时,程序会重复 你闻到了 你闻到了 你闻到了 你闻到了 你闻到了 无限次。
答案 0 :(得分:0)
您的while
循环永远不会结束。你在最后的'else'下休息一下,但你假设你的变量menu
实际上会被修改。你不应该在响应上循环,而是总体而言:
y=True
while y==True:
menu=int(input("What would you like? \n\
1. A compliment \n\
2. An insult \n\
3. A proverb \n"))
if menu==1: #compliment
print ("You look nice today")
elif menu==2: #insult
print("You smell")
elif menu==3: #proverb
print("A bird in the hand is worth two in the bush!")
else:
print("Invalid option ")
y = False
以上操作将一直运行,直到输入无效选项,然后循环将中断。您的原始代码永远不会破坏,因为永远不能修改y
。您的y==False
是一个比较操作,而不是一个赋值操作。但是,STILL永远不会被击中,因为你不会在循环中要求额外的输入,因此它将永远保持TRUE
。
答案 1 :(得分:0)
你有2个问题。正如@Arrjun Ram所说,当你需要y==False
y=False
您遇到的另一个问题是,您对input
的调用超出了while
循环。这意味着菜单的值永远不会改变。您需要将其移动到while
循环的内部。
你也可以添加一个选项,比如4,退出循环。