【问题标题】:or command in if statement not working properly [duplicate]或 if 语句中的命令无法正常工作 [重复]
【发布时间】:2020-06-09 15:50:25
【问题描述】:

在下面的代码中,无论条件是否满足,都会触发 if 语句。 问题出在“或”或其他我不知道的地方。请帮忙

while True:
q = input("WRITE:")
if 'a' or 'b' in q:
    print("yes")
else:
    print("no")

我看到了一些解决方法,比如应用括号,即

while True:
q = input("WRITE:")
if('a') or ('b') in q:
    print("yes")
else:
    print("no")

但无论条件是否满足,这也会触发。

我也试过了

while True:
q = input("WRITE:")
if('a' or 'b') in q:
    print("yes")
else:
    print("no")

但这也不起作用,请帮助我。如何解决它

【问题讨论】:

  • 这个解析和if ('a') or ('b' in q)一样; in 不会“分发”到 'a' or 'b'

标签: python


【解决方案1】:

你需要这样使用它:

if 'a' in q or 'b' in q:
    ...

需要检查每个变量是否在q中。

if 下的子句:

if 'a':

将永远被执行,因为它是“真实的”。如果字符串不是空字符串,Python 会认为它是“真实的”。

“falsy”是空字符串、0 整数、空数组和空字典。

【讨论】:

  • 还有if any(x in q for x in ['a', 'b']):,但这对于两个选项来说有点过头了。
  • @chepner 从字面上看,我打算粘贴 if any( x in ['a', 'b'] for x in q): 作为答案,我看到了你的评论,这阻止了我。
猜你喜欢
  • 1970-01-01
  • 2021-05-30
  • 2019-07-23
  • 2015-09-27
  • 2016-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多