Cri*_*eri 3 python bitwise-operators logical-operators
我不明白之间的差别&和and,即使我读了一些关于它的其他问题.
我的代码是:
f=1
x=1
f==1 & x==1
Out[60]: True
f==1 and x==1
Out[61]: True
f=1
x=2
f==1 and x==2
Out[64]: True
f==1 & x==2
Out[65]: False
Run Code Online (Sandbox Code Playgroud)
为什么它是第二个& False,而第一个是True?
问题是&运营商的优先级高于==.
>>> (f == 1) & (x == 2)
True
>>> f == (1 & x) == 2
False
Run Code Online (Sandbox Code Playgroud)
也许这似乎不直观,但&实际上是在数字之间用于特定种类的计算:
>>> 3 & 5
1
Run Code Online (Sandbox Code Playgroud)
因此它具有与运算符类似的优先级,+并且*之前应合理地进行评估==.它并不意味着以类似的方式使用它and.
| 归档时间: |
|
| 查看次数: |
165 次 |
| 最近记录: |