标题说明了一切。例如,1<2<3
返回True
,2<3<1
返回False
。
它的功能很棒,但我无法解释为什么它的工作原理...我在文档中找不到任何相关内容。它总是:expression boolean_operator expression
,而不是两个布尔运算符)。另外:a<b
返回一个布尔值,而boolean boolean_operator expression
不解释该行为。
我确信这个解释几乎是明显的,但我似乎很想念它。
答案 0 :(得分:9)
这称为操作员链接。文档可在以下网址获得:
https://docs.python.org/2/reference/expressions.html#not-in
比较可以任意链接,例如,x <1。 y&lt; = z等于x&lt; y和y&lt; = z,除了y仅被评估一次(但在两种情况下,当x&lt; y被发现为假时,根本不评估z。)
而且,如果你真的喜欢正式的定义:
正式地,如果
a
,b
,c
,...,y
,z
是表达式,op1
,{{ 1}},...,op2
是比较运算符,然后opN
等同于a op1 b op2 c ... y opN z
,除了每个表达式最多只计算一次。
答案 1 :(得分:2)
您的多个运算符都具有相同的优先级,因此现在它将以串行方式完成它们。 1<2<3
转到1<2
即T,然后2<3
为T. 2<3<1
有两部分,2<3
为T,但3<1
为F所以整个表达式的计算结果为F.
答案 2 :(得分:1)
根据语言参考
,可以链接比较运算符