Python中 a \u003c b \u003c c之类的语句到底是咋回事

https://docs.python.org/3/reference/expressions.html#comparisons
Comparisons can be chained arbitrarily, e.g., x \u0026lt; y \u0026lt;= z is equivalent to x \u0026lt; y and y \u0026lt;= z, except that y is evaluated only once (but in both cases z is not evaluated at all when x \u0026lt; y is found to be false).
Formally, if a, b, c, …, y, z are expressions and op1, op2, …, opN are comparison operators, then a op1 bop2 c ... y opN z is equivalent to a op1 b and b op2 c and ... y opN z, except that each expression is evaluated at most once.
【Python中 a \u003c b \u003c c之类的语句到底是咋回事】 https://docs.python.org/3/library/stdtypes.html#truth-value-testing
Operations and built-in functions that have a Boolean result always return 0 or False for false and 1 or True for true, unless otherwise stated. (Important exception: the Boolean operations or and and always return one of their operands.)

■网友
没有去找文档,按照平时操作的经验说一下首先是描述中的举例,False的原因不是因为布尔类型和整数、浮点数不能比较,而是True的值为1,False的值为0,导致数值比较错误:\u0026gt;\u0026gt;\u0026gt; -1 \u0026lt; 0.5 \u0026lt; 0.7True\u0026gt;\u0026gt;\u0026gt; (-1 \u0026lt; 0.5 )\u0026lt; 0.7# 这里相当于1 \u0026lt; 0.7,很自然的结果是FalseFalse\u0026gt;\u0026gt;\u0026gt; 3 \u0026lt; 4 \u0026lt; 5True\u0026gt;\u0026gt;\u0026gt; 3 \u0026lt; (4 \u0026lt; 5)# 这里相当于3 \u0026lt; 1,很自然的结果也是FalseFalse再比如这样看就一目了然:\u0026gt;\u0026gt;\u0026gt; True\u0026lt;2True\u0026gt;\u0026gt;\u0026gt; False\u0026lt;TrueTrue\u0026gt;\u0026gt;\u0026gt; (1\u0026lt;2)\u0026lt;3True\u0026gt;\u0026gt;\u0026gt; -1\u0026lt;(0\u0026lt;1)True再说运算顺序,我倾向于认为这是把连续比较拆分成若干个and,只要中间遇到一个False就中断返回False:
\u0026gt;\u0026gt;\u0026gt; 1\u0026lt;3\u0026gt;2True\u0026gt;\u0026gt;\u0026gt; 1\u0026lt;10\u0026gt;2\u0026lt;9\u0026gt;3\u0026lt;8\u0026gt;4\u0026lt;7\u0026gt;5\u0026lt;6True另外,什么时候支持Markdown,,
■网友
这么符合数学习惯不好吗
■网友
高赞回答容易引起误解,下面那位同学贴出的文档是正确的。


    推荐阅读