我写了这段代码(x
在此范围之前通过str()
运行:
if x == "A" or "O":
return x
B
时会返回x = B
。有人可以帮我理解为什么x = B
在这里验证了吗?
当我将代码更改为
时if x == "A":
return x
elif x == "O":
return x
它与x = B
不匹配,所以我假设这里有一些布尔逻辑,我不理解。
答案 0 :(得分:3)
if x == "A" or "O":
应为if x == "A" or x == "O":
。
if x == "A" or "O":
将始终评估为true
。
if x == "A" or "O":
被解释为:
if (x == "A") or ("O")
,"O"
为true
,因此,即使x
不是"A"
,因为您有or
,这始终是true
。
或者你可以写:
if x in ["A", "O"]: