Python if语句中的或命令工作不正常

Python if语句中的或命令工作不正常,python,Python,在下面的代码中,无论条件是否满足,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

在下面的代码中,无论条件是否满足,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' in q or 'b' in q:
    ...
如果每个变量都在
q
中,则必须对其进行检查

如果,则
下的子句:

if 'a':
将永远被执行,因为它是“真实的”。Python认为字符串“truthy”不是空字符串


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

这与
if('a')或q中的('b')的解析相同。
<
中的code>不会“分发”到
'a'或'b'
。如果有的话也有
(x在q中代表x在['a','b']):
,但这对于两个选项来说太过分了。@chepner字面上说我打算粘贴
如果有的话(x在['a',b']代表x在q中):
作为答案,我看到了你的评论,这让我停了下来。