为什么“a in b == c”等于“(a in b) and (b == c)”

时间:2021-03-24 04:06:09

标签: python

我发现计算 a in b == c 的结果总是等于 (a in b) and (b == c)。谁能解释一下?

这是一个在 Python3.7 上运行的示例:

>>>> "123" in "1234" == "1234"
True

>>>> "123" in "1234" != "1234"
False

>>>> "123" in "1234" != "12345"
True

>>>> "123" in "1234" == "12345"
False

>>>> "888" in "1234" == "1234"
False

1 个答案:

答案 0 :(得分:1)

Comparisons

<块引用>

比较可以任意链接,例如,x < y <= z 等价于 x < y 和 y <= z,除了 y 只计算一次(但在这两种情况下 z 都是当发现 x < y 为假时根本不计算

其中 in 也是一个比较运算符

另请参阅 operator precedence 部分以了解 in 和相等性检查同时发生,从左到右