1

我写了这段代码(在这个范围之前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,所以我假设这里有一些我不理解的布尔逻辑。

4

1 回答 1

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"]:
于 2013-08-14T09:24:13.267 回答