首页 > 解决方案 > 为什么“a in b == c”等于“(a in b) and (b == c)”

问题描述

我发现评估的结果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

标签: python

解决方案


比较

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

wherein也是比较运算符

另请参阅有关运算符优先级的部分,以查看in从左到右同时发生的相等性检查


推荐阅读