我在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
我有什么遗失的东西吗?
答案 0 :(得分:3)
您需要使用括号:
(y in x) == True # evaluates to True
所有比较运算符都具有相同的优先级,因此从左到右进行评估。
python中的链式比较具有以下属性:
a OP1 b OP2 c
与
相同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
,它可能没那么有意义。