为何Python中“2==2>1”结果为True

在Python中,你可能会发现这样一个奇怪的现象:javascript

>>> 2 == 2 > 1 True >>> (2 == 2) > 1 False >>> 2 == (2 > 1) False

为何会出现 2==2>1的结果为True?若是说这是运算符的优先级问题,那么后两个式子为何又都是False?java

实际上这涉及到了Python的 链式对比(ChainedComparisons)。在其余语言中,有一个变量 x,若是要判断x是否大于1,小于5,可能须要这样写代码:spa

if (x > 1 and x < 5)

可是在Python中,能够这样写代码:code

if 1 < x < 5

Python可以正确处理这个链式对比的逻辑。回到最开始的问题上, ==等于符号和 <小于符号,本质没有什么区别。因此实际上 2==2>1也是一个链式对比的式子,它至关于 2==2and2>1。此时,这个式子就等价于 TrueandTrue。因此返回的结果为True。token

注:True至关于1,False至关于0ip

原文来自:https://cloud.tencent.com/developer/article/1386941io

相关文章
相关标签/搜索