Python ';而';基于菜单的菜单不';行不通
此菜单不工作,我找不到原因,因为我没有得到任何错误,但它仍然不是所需的返回值 我认为问题出在while循环的某个地方:Python ';而';基于菜单的菜单不';行不通,python,menu,while-loop,Python,Menu,While Loop,此菜单不工作,我找不到原因,因为我没有得到任何错误,但它仍然不是所需的返回值 我认为问题出在while循环的某个地方: def mainMenu(): """ Main menu for the aplication""" mainMenuPrint() def m(): inp='' while inp!='q': inp = str(input('enter option: '))
def mainMenu():
""" Main menu for the aplication"""
mainMenuPrint()
def m():
inp=''
while inp!='q':
inp = str(input('enter option: '))
print'aaa' #test
if inp == '1' or 'game': gameMenu()
elif inp == 'admin' or 'administration' or '2': adminMenu()
elif inp == 'quit' or '0': inp ='q'
else:
print 'wrong input!'
print 'bbb' #test
m()
mainMenuPrint()
只是一个字符串打印
PYTHON 2.7
正如我所说的,我没有收到任何错误,但是输入都不起作用,它会不断弹出“回车”选项作为初学者,如果inp=='something'或'sometotherthing'或'athridthing',你可能想用
习惯用法替换如果inp in('something','sometherthing','athridthing'))
因为或
只是测试“其他事物”的真值,而不是挂接相等测试,从而评估任何测试是否为真
例如:
>>> a = '2'
>>> if a == '1' or '2': print 'hey'
...
hey
>>> a = 'c'
>>> if a == '1' or '2': print 'hey'
...
hey
如您所见,即使为a
分配了与中测试的字符串不同的字符串,如果在编写您的条件时写入了条件,则该条件的计算结果为True
相反:
>>> a = '2'
>>> if a in ('1', '2'): print 'hey'
...
hey
>>> a = 'c'
>>> if a in ('1', '2'): print 'hey'
...
>>>
希望这开始有所帮助
if (a = 3) or (1 != 0):
与…的意思相同
if (a = 3) or (1):
if (a = 3) or 1:
这与
if (a = 3) or (1):
if (a = 3) or 1:
事实并非总是如此
你应该写
if inp == '1' or inp == 'game': gameMenu()
让你的菜单正常工作。哪个输入不能正常工作?@kindall:如果他像他说的那样“没有任何错误”,那应该是Python 2。那么当他键入q
时,我预计会出现错误,因为他使用的是input()
而不是raw\u input()
。。。我想他使用的是哪一个并不重要,因为这两个都不会运行,但是如果知道需要修复什么就好了。您是否在代码中的某个点调用main menu()
?您得到的“非期望输出”是多少?+1。需要注意的关键是如果a=='1'或'2'
与如果a=='1'或a=='2'
@Giulio感谢你花时间,你说得很清楚chepner谢谢,这就是问题所在。。。。