Python `&` 与 `and` 辨析

首页 / 学习区 / 正文

最近在学习时常常把Python的and&搞混淆,特地来记录一下。
对于a & ba and b,有以下两种情况:

若a、b为数值变量

&表示位运算,含义为“”——只有当两个位都为1时,结果才为1。
and的规则是若a、b两个数中含0,则返回0;若a、b两个数均为非0时,则返回后一个值
此外,当and遇到bool逻辑为False的值,则会立刻返回该值且不再往后运算

>>> 1 & 2
0
>>> 3 & 5
1
>>> 1 and 2
2
>>> 1 and 2 and 3
3
>>> 0 and 1
0
>>> 1 and '' and {} and () and False
''
对 3&5=1 的解释:3&5 即 0000 0011 & 0000 0101 = 0000 0001,因此 3&5 的值得 1。

若a、b为逻辑变量

这里需要养成使用()的好习惯。通常情况下,逻辑运算符和比较运算符一起使用,用于条件选择和循环。

>>> a = 1
>>> b = 1
>>> a > 0 and b > 0
True
>>> (a > 0) and (b > 0) # 这种写法更好,不容易出错
True

参考:
https://www.runoob.com/w3cnote/bit-operation.html
https://www.cnblogs.com/huangbiquan/p/7892872.html

评论区
头像
文章目录