【问题标题】:Else, elif, if problems in Python否则,elif,如果 Python 中的问题
【发布时间】:2012-10-08 09:56:43
【问题描述】:
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”输入什么,此代码每次都会打印出“吉他”选项卡(第一个 if 语句)。

我正在尝试自学 Python,我只是边学习边学习,这是我正在开发并希望扩展的基本程序。

我在网上查看过,但从我读到的关于 if else 语句的内容来看,在我的新手眼中,这段代码应该可以工作。我错过了一些我无法弄清楚的东西

【问题讨论】:

  • 你应该接受 Amber 的回答。

标签: python if-statement


【解决方案1】:
if instrument=='guitar' or 'Guitar':

被解析为

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

'Guitar' 这样的非空字符串被评估为True,所以第一个条件总是True

改为使用

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

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

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

【讨论】:

  • 我想你的意思是('guitar', 'Guitar')
【解决方案2】:
instrument == 'guitar' or 'Guitar'

应该是

instrument == 'guitar' or instrument == 'Guitar'

或更好,

instrument in ('guitar', 'Guitar')

甚至

instrument.lower() == 'guitar'

低音部分也是如此。


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

...实际上读作(a == b) or c

or 运算符并没有按照您的想法使用。它是一个逻辑或,而不是“多个选项”分隔符。

【讨论】:

  • 那个“圣经”变量实际上应该是“仪器”,对不起,我在我的问题中修正了它。但是你的例子仍然是正确的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-06-29
  • 2018-06-16
  • 1970-01-01
  • 2022-11-23
  • 2013-04-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多