gpt4 book ai didi

python - 关于 Python 中 "=="和 "!="链接的规则是什么

转载 作者:太空狗 更新时间:2023-10-29 17:00:29 27 4
gpt4 key购买 nike

今天早上,我发现自己在写这样的东西:

if (a == b == c):
# do something

令我惊讶的是它给了我预期的结果。

我认为它会表现为:

if ((a == b) == c):
# do something

但显然没有。似乎 Python 对第一个语句的处理方式与第二个语句不同,这很好,但我找不到与此相关的任何文档或解释。

我测试并得到了这个:

In [1]: 2 == 2 == 2
Out[1]: True

In [2]: (2 == 2) == 2
Out[2]: False

有人愿意向我解释有关 ==(或 !=)的这种“链接”的规则是什么吗?

非常感谢。

最佳答案

这适用于所有比较运算符 - 例如,您还可以:

>>> 4 < 5 < 6
True
>>> 4 < 5 !=2
True

一般来说,according to the documentation , a op1 b op2 c其中 op1op2是以下任何一项:< , > , != , == , <= , >= , is , is not , innot in将给出与以下相同的结果:

a op1 b and b op2 c

文档还说这可以用于任意多次比较,所以:

>>> 5 != '5' != 'five' != (3+2)
True

有时这可能是一个有点令人困惑的结果,因为它似乎在说 5 != (3+2) - 每个操作数仅与紧邻的操作数进行比较,而不是进行所有可能的组合(从仅使用 == 的示例中可能不清楚,因为如果所有内容都定义 __eq__ ,它不会影响答案).

关于python - 关于 Python 中 "=="和 "!="链接的规则是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11153817/

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