python - 对三个对象使用 "=="运算符

标签 python operators equality

这两种检查三个对象是否相等的方法在计算上有什么不同吗?

我有两个变量:xy。假设我这样做:

>>> x = 5
>>> y = 5
>>> x == y == 5
True

这有什么不同吗:

>>> x = 5
>>> y = 5
>>> x == y and x == 5
True

如果它们是 False 怎么办?

>>> x = 5
>>> y = 5
>>> x == y == 4
False

和:

>>> x = 5
>>> y = 5
>>> x == y and x == 4
False

它们的计算方式有什么不同吗?

此外,x == y == z 是如何工作的?

提前致谢!

最佳答案

Python 有链式比较,所以这两种形式是等价的:

x == y == z
x == y and y == z

除了在第一个中,y 只计算一次。

这意味着你还可以这样写:

0 < x < 10
10 >= z >= 2

等您还可以编写令人困惑的内容,例如:

a < b == c is d   # Don't  do this

初学者有时会被这个绊倒:

a < 100 is True   # Definitely don't do this!

这将永远是错误的,因为它与:

a < 100 and 100 is True   # Now we see the violence inherent in the system!

关于python - 对三个对象使用 "=="运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13792604/

相关文章:

python - 使用 spaCy 3.0 将数据从旧的 Spacy v2 格式转换为全新的 Spacy v3 格式

scala - Scala 的 += 在 Int 的上下文中定义在哪里?

c# - TypeDelegator 平等不一致?

python - PyQt5 && QML 导出枚举

python - Seaborn Violinplot 更改色调顺序

Python 单元测试和测试发现

asp.net-mvc-3 - 根据asp.net mvc3中的下拉列表数据获取列表

java - 使用特定数字来达到目标​​数字

android - 在 Kotlin 中检查两个对象的某些(不是全部)属性是否相等的惯用方法

php - PHP switch 语句中的相同匹配(带类型检查)