Rus*_*hal 6 python equality operators
这两种检查三个对象之间的相等性的方法之间是否有任何计算差异?
我有两个变量:x
和y
.说我这样做:
>>> x = 5
>>> y = 5
>>> x == y == 5
True
Run Code Online (Sandbox Code Playgroud)
这有什么不同于:
>>> x = 5
>>> y = 5
>>> x == y and x == 5
True
Run Code Online (Sandbox Code Playgroud)
如果他们是这样的False
呢?
>>> x = 5
>>> y = 5
>>> x == y == 4
False
Run Code Online (Sandbox Code Playgroud)
和:
>>> x = 5
>>> y = 5
>>> x == y and x == 4
False
Run Code Online (Sandbox Code Playgroud)
它们的计算方式有什么不同吗?
另外,怎么x == y == z
工作?
提前致谢!
Ned*_*der 13
Python已经链接了比较,所以这两种形式是等价的:
x == y == z
x == y and y == z
Run Code Online (Sandbox Code Playgroud)
除了在第一个中,y仅被评估一次.
这意味着你也可以写:
0 < x < 10
10 >= z >= 2
Run Code Online (Sandbox Code Playgroud)
你也可以写下令人困惑的东西:
a < b == c is d # Don't do this
Run Code Online (Sandbox Code Playgroud)
初学者有时会被绊倒:
a < 100 is True # Definitely don't do this!
Run Code Online (Sandbox Code Playgroud)
这将永远是假的,因为它是相同的:
a < 100 and 100 is True # Now we see the violence inherent in the system!
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
867 次 |
最近记录: |