对三个对象使用“ ==”运算符
问题内容:
这两种检查三个对象之间相等性的方法之间在计算上有区别吗?
我有两个变量:x
和y
。说我这样做:
>>> 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!