gpt4 book ai didi

python - Python 比较运算符从左到右链/组是什么意思?

转载 作者:太空狗 更新时间:2023-10-29 16:54:48 25 4
gpt4 key购买 nike

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 Comparisons...)

这是什么意思?具体来说:

  1. “同一个盒子里的算子从左​​到右分组(除了比较...)" -- 比较不是从左到右分组吗?

  2. 如果比较从左到右分组,它们会做什么?他们是“链式”而不是“群体”吗?

  3. 如果比较“链”而不是“组”,那么“链”和“组”有什么区别?

  4. 有哪些例子可以证明比较运算符是从左到右而不是从右到左链接的?

最佳答案

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

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

从左到右链接

链接是从左到右的,因此在 a < b < c 中, 表达式 a < bb < c 之前被评估, 如果 a < b是假的,b < c不评价。

(2 < 1 < f())给出值 False不调用函数 f ,因为 2 < 1计算结果为 false,因此不需要进行第二次比较。

f() > 1 > g()电话 f()为了评估第一个比较,并根据结果,它可能需要也可能不需要评估第二个条件,这需要调用 g() .

注意。每个操作数最多评估一次。所以在表达式 1 < f() < 2 中, 函数 f()只调用一次,它给出的值用于两次比较(如果需要)。

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

关于python - Python 比较运算符从左到右链/组是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25753474/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com