为什么True == True计算为True,当{一个等于True的语句} == True计算为false?

时间:2018-02-20 12:23:23

标签: python-3.x

我在Python3中解释此脚本的内容时遇到了问题:

x = "hello"
y = "ll"
x in y == True # evaluates to False
y in x == True # evaluates to False
y in x # evaluates to True

我有什么遗失的东西吗?

1 个答案:

答案 0 :(得分:3)

您需要使用括号:

(y in x) == True # evaluates to True

enter image description here

所有比较运算符都具有相同的优先级,因此从左到右进行评估。

python中的链式比较具有以下属性:

a OP1 b OP2 c

6.10 Comparisons

相同
a OP1 b and b OP2 c

意思是

y in x == True

评估为

y in x and x == True

成为

True and False

False

我认为最初引入比较链是为了让像a < b < c这样的表达式具有更传统的数学意义,尽管使用==in,它可能没那么有意义。