今天早上,我发现自己在写一些东西:
if (a == b == c):
# do something
很惊讶它给了我预期的结果。在
我以为它会表现为:
^{pr2}$
但显然没有,似乎Python对第一个语句的处理方式与第二个语句不同,这很好,但我找不到任何有关这方面的文档或解释。在
我接受了测试:
In [1]: 2 == 2 == 2
Out[1]: True
In [2]: (2 == 2) == 2
Out[2]: False
有人愿意给我解释一下关于==
(或!=
)这种“链接”的规则是什么?在
非常感谢。在
Tags:
这适用于所有比较运算符-例如,您还可以执行以下操作:
一般来说,according to the documentation,}是以下任何一种:}将得到相同的结果:
^{pr2}$a op1 b op2 c
,其中op1
和{<
,>
,!=
,==
,<=
,>=
,is
,is not
,in
或{文件还说,这种方法可以任意多个比较,因此:
这有时可能是一个稍微令人困惑的结果,因为它似乎在说
5 != (3+2)
-每个操作数只与它相邻的操作数进行比较,而不是进行所有可能的组合(这可能从仅使用==
的示例中看不清楚,因为如果所有操作都合理地定义__eq__
,它不会影响答案)。在据我所知,你所指的例子不是连锁的。在
2 == 2 == 2
就像(2 == 2) and ( 2 == 2)
,结果是True and True
同时
(2 == 2) == 2
就像(True) == 2
请在此处检查:http://docs.python.org/reference/expressions.html#not-in
相关问题 更多 >
编程相关推荐