>>> item = 2
>>> seq = [1,2,3]
>>> print (item in seq)
True
>>> print (item in seq is True)
False
为什么第二条print
语句输出False
?
in
并且is
是Python中的比较运算符,在这方面与<
和相同==
。一般来说,
expr1 <comparison1> expr2 <comparison2> expr3
被视为
(expr1 <comparison1> expr2) and (expr2 <comparison2> expr3)
除了那只expr2
评估一次。这就是为什么,例如
0 <= i < n
可以正常工作。但是,它适用于任何链式比较运算符。在您的示例中
item in seq is True
被视为
(item in seq) and (seq is True)
该seq is True
部分为False,因此整个表达式为False。为了获得您可能想要的目的,请使用括号来更改分组:
print((item in seq) is True)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句