编程语言
首页 > 编程语言> > Python比较运算符从左到右链接/分组?

Python比较运算符从左到右链接/分组?

作者:互联网

operator precedence的Python文档指出:

Operators in the same box group left to right (except for
comparisons, including tests, which all have the same precedence and
chain from left to right — see section 07001…)

这是什么意思?特别:

>“同一个盒子组中的运算符从左到右(除了
比较……)“ – 做比较不是从左到右分组?
>如果比较不是从左到右分组,那么他们做了什么呢?他们“链”而不是“群体”吗?
>如果比较“链”而不是“组”,“链接”和“分组”之间有什么区别?
>什么样的例子可以证明比较运算符从左到右而不是从右到左链接?

解决方法:

分组(这是非比较运算符所做的):

a + b + c   means   (a + b) + c

链接(这是比较运算符所做的):

a < b < c   means   (a < b) and (b < c)

从左到右分组(这是事物分组的方式):

5 - 2 - 1   means   (5 - 2) - 1 == 2

而不是从右到左分组(这会产生不同的结果):

5 - (2 - 1) == 4

(编辑)

链接从左到右,因此在< b< c,表达式a< b在b 1> g()调用f()来计算第一个比较,并根据结果,它可能需要或可能不需要计算第二个条件,这需要调用g().

https://en.wikipedia.org/wiki/Short-circuit_evaluation

标签:associativity,python,operator-precedence,comparison
来源: https://codeday.me/bug/20190917/1809331.html