Python中比较运算符的关联性
Python中比较运算符的关联性是什么?对于三个比较来说,这很简单,但除此之外,我不确定它是如何做到的。它们似乎不是右联想或左联想Python中比较运算符的关联性,python,comparison,comparison-operators,associativity,Python,Comparison,Comparison Operators,Associativity,Python中比较运算符的关联性是什么?对于三个比较来说,这很简单,但除此之外,我不确定它是如何做到的。它们似乎不是右联想或左联想 >>> 81037572 > -2025 < -4722 < 6493 False >>> (81037572 > (-2025 < (-4722 < 6493))) True 例如: >>> 7410 >= 8690 <= -45
>>> 81037572 > -2025 < -4722 < 6493
False
>>> (81037572 > (-2025 < (-4722 < 6493)))
True
例如:
>>> 7410 >= 8690 <= -4538 < 9319 > -7092
False
>>> (((7410 >= 8690) <= -4538) < 9319) > -7092
True
>7410>=8690-7092
假的
>>> (((7410 >= 8690) -7092
真的
所以,不是左联想
>>> 81037572 > -2025 < -4722 < 6493
False
>>> (81037572 > (-2025 < (-4722 < 6493)))
True
>>81037572>-2025<-4722<6493
假的
>>> (81037572 > (-2025 < (-4722 < 6493)))
真的
所以这也不对
我见过一些地方它们被“链接”,但是如果有四个或更多的比较,这是如何工作的?你在类型上犯了一个错误,当你写
81037572>-2025
时,系统会认为这是True
或False
并将其与1
和0
相关联。因此,它会给出u与这些二进制数进行比较。python短圈从左到右进行布尔测试:
7410>=8690<=-4538<9319>-7092 -> False
都是True
,并且在比较布尔值和整数时应用。因此,当用括号括住语句时,会强制python执行所有测试;详细内容如下:
(((7410>=8690)<=-4538)<9319)>-7092
False <=-4538
False <9319
True >-7092
True
((7410>=8690)链式比较用和
展开,因此:
a <= b <= c
a我意识到它们返回布尔值。Python在比较过程中使用布尔值作为整数。因此,例如,15返回false。我知道它不会返回数学上正确的结果。它们只是示例,我只是问它们是如何解释的。按什么顺序。从我所能看出,它是从右到左的。S因为0<3<2
返回False
如果是这种情况,那么02将为真。02
评估为02
-->true和False
-->False
a <= b and b <= c