假设将此类型输入到我的python shell中.
>>> print 0 != 1 and (1 == 1 or 2 == 2)
True
Run Code Online (Sandbox Code Playgroud)
这将返回布尔值True.现在让我们假设我稍微改变一下.
>>> print 0 != 1 & (1 == 1 | 2 == 2)
False
Run Code Online (Sandbox Code Playgroud)
现在它又回来了False.为什么?
我认为你是混乱&和&&.请注意,在Python中,&&是关键字and(据我所知,&&并且||在Python中不存在).
|并且&是二进制AND和OR运算,这是从真正的不同and和or.
您的第二个代码被翻译为:
0 != 1 & (1 == (1 | 2) == 2) # 1 | 2 is 3
??
0 != 1 & (1 == 3 == 2)
??
0 != 1 & int(False)
??
0 != 1 & 0 # 1 & 0 is 0
Run Code Online (Sandbox Code Playgroud)
现在,0 != 0是False.
另请注意有关运算符优先级的其他答案.
| 归档时间: |
|
| 查看次数: |
62 次 |
| 最近记录: |