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)