否则,如果Python的问题

2024-06-14 00:17:13 发布

您现在位置:Python中文网/ 问答频道 /正文

instrument=(raw_input("Which kind of tab would you like to view? Enter 'Guitar' or 'Bass' for a random tab " ))
print
if instrument=='guitar' or 'Guitar':
    print ("0-3-5---0-3-6-5---0-3-5-3-0")
elif instrument=='bass' or 'Bass':
    print ("3-5-12--12-0-5-6-0-0-0-3")
else:
    print 'Sorry, please re-enter a proper answer'

无论您为变量“instrument”输入什么,此代码每次都会打印出“guitar”选项卡(第一个if语句)。在

我试着自学python,并在学习的过程中不断学习,这是我正在开发的一个基本程序,并希望进一步扩展。在

我在网上看过,但是从我读到的if-else语句来看,我的新手认为这段代码应该可以工作。我错过了一些我无法理解的东西


Tags: or代码whichinputrawif语句tab
2条回答
instrument == 'guitar' or 'Guitar'

应该是

^{pr2}$

或者更好

instrument in ('guitar', 'Guitar')

甚至是

instrument.lower() == 'guitar'

低音部分也一样。在


它总是输出第一个选项的原因是a == b or c。。。在

…实际上读作(a == b) or c。在

or运算符的用法与您想象的不一样。它是一个逻辑or,而不是“多选项”分隔符。在

if instrument=='guitar' or 'Guitar':

被解析为

^{pr2}$

'Guitar'这样的非空字符串被计算为True,因此第一个条件总是True。在

相反,使用

if instrument in ('guitar', 'Guitar'):

或者,如果你愿意接受有趣的拼写,比如'gUiTAR',你可以使用

if instrument.lower() == 'guitar':

相关问题 更多 >