Joh*_*Doe 4 python comparison associativity comparison-operators
Python 中比较运算符的结合性是什么?三个比较很简单,但除此之外,我不确定它是如何做到的。它们似乎不是右关联或左关联。
例如:
>>> 7410 >= 8690 <= -4538 < 9319 > -7092
False
>>> (((7410 >= 8690) <= -4538) < 9319) > -7092
True
Run Code Online (Sandbox Code Playgroud)
所以,不是左结合。
>>> 81037572 > -2025 < -4722 < 6493
False
>>> (81037572 > (-2025 < (-4722 < 6493)))
True
Run Code Online (Sandbox Code Playgroud)
所以它也不是右结合的。
我已经看到一些地方被“链接”了,但是这如何与四个或更多的比较一起工作?
链式比较用 展开and,所以:
a <= b <= c
Run Code Online (Sandbox Code Playgroud)
变成:
a <= b and b <= c
Run Code Online (Sandbox Code Playgroud)
请注意,惰性求值意味着 ifa > b的结果是False并且b永远不会与 进行比较c。
你带括号的版本完全不同;a <= (b <= c)将评估b <= c然后a与结果进行比较,and根本不涉及,因此比较结果以确定关联性没有意义。
| 归档时间: |
|
| 查看次数: |
530 次 |
| 最近记录: |