此菜单无效,我找不到原因,因为我没有收到任何错误,但它仍然不是所需的返回值。
我认为问题出现在while循环中:
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
正如我所说我没有错误,但没有任何输入有效,它会不断弹出'输入选项'
答案 0 :(得分:4)
对于初学者,您可能希望用if inp == 'something' or 'someotherthing' or 'athridthing'
替换if inp in ('something', 'someotherthing', 'athirdthing')
惯用语,因为or
只测试例如'someotherthing'
的真值。 True
而不是挂钩相等测试,从而评估您对>>> a = '2'
>>> if a == '1' or '2': print 'hey'
...
hey
>>> a = 'c'
>>> if a == '1' or '2': print 'hey'
...
hey
的任何测试。
示例:
a
如您所见,即使if
被分配的字符串与您编写的True
条件中测试的字符串不同,也会将条件评估为>>> a = '2'
>>> if a in ('1', '2'): print 'hey'
...
hey
>>> a = 'c'
>>> if a in ('1', '2'): print 'hey'
...
>>>
。
恰恰相反:
{{1}}
希望这开始有所帮助。
答案 1 :(得分:0)
if (a = 3) or (1 != 0):
具有与
相同的含义if (a = 3) or (1):
与
的含义相同 if (a = 3) or 1:
总是如此 你应该写
if inp == '1' or inp == 'game': gameMenu()
让你的菜单有效。