例如,当我选择1时,代码“执行某些操作”但是它不会再次重复菜单。相反,它显示“1”。为什么?我该如何解决?
menu = input('1. \n 2. \n')
choice = input(menu)
while choice in ['1', '2']:
print(input(menu))
if choice == 1:
#do something
elif choice == 2:
#do something
else:
break
答案 0 :(得分:0)
您正在将string
与int
进行比较
您的选择为type int
,输入默认值为string
演示:
>>>'1' == 1
False
尝试这样:
def take_input():
menu = input('1. \n 2. \n')
return menu
menu = take_input()
while menu in ['1', '2']:
if menu == '1':
#do something
menu = take_input()
elif menu == '2':
#do something
menu = take_input()
else:
break
您可以删除不需要的while menu in ['1','2']
while True:
menu= take_input()
if menu == '1':
#do something
menu= take_input()
elif menu=='2':
#do something
menu= take_input()
else:break
答案 1 :(得分:0)
你去吧。我不确定你为什么这样做choice = input(menu)
我取而代之。我已经放break
来停止执行,因为它会进入无限循环。您希望它变为无限,然后删除break
。else
内的while
部分也永远不会被执行,因为您正在检查choice
是否为“1”或“2”。
def display_menu():
menu = input('1. \n 2. \n')
return str(menu)
def get_choice():
choice = display_menu()
while choice in ['1', '2']:
if choice == "1":
print "inside if condition"
get_choice()
elif choice == "2":
print "inside elif condition"
#do something
get_choice()
else:
print "inside else condtion"
break
get_choice()
答案 2 :(得分:-1)
将菜单放在循环中,并将字符串更改为整数,如下所示:
menu = 'Type 1 or 2: '
choice = input(menu)
while choice in [1, 2]:
if choice == 1: print 11111
elif choice == 2: print 22222
choice = input(menu)