1 python if-statement bitwise-operators python-3.x
a = 2
b = 1
if a == 2 | b == 1:
print(a, b)
Run Code Online (Sandbox Code Playgroud)
这不会打印 a & b 的值
a = 2
b = 1
if ((a == 2) | (b == 1)):
print(a, b)
Run Code Online (Sandbox Code Playgroud)
这将打印值
为什么这样?
操作员==
在Python具有比操作者优先级较低|
。所以:
a == 2 | b == 1
Run Code Online (Sandbox Code Playgroud)
相当于:
a == (2 | b) == 1
Run Code Online (Sandbox Code Playgroud)
反过来,这相当于:
(a == (2 | b)) and ((2 | b) == 1)
Run Code Online (Sandbox Code Playgroud)
鉴于a==2
,至少有一个子表达式必须为假,而不管b
。
归档时间: |
|
查看次数: |
94 次 |
最近记录: |