在Python的使用过程中,and和&傻傻分不清楚,主要原因是对其本身的概念和具体运算方式不清晰。
and:属于逻辑运算符。比如加减乘除符号有各自对用的运算规则,作为逻辑运算符也得遵守相应的规则。
eg1:a and b
逻辑运算符and遵守当仅当a和b同时为真时,逻辑运算结果返回b,否则返回0。
2and3=3,2为真,3为真,结果返回3。
0and3=0, 0为假,3为真,结果为0。
代码:
a = 2
b = 3
c = 0
print(a and b) #a为真,b为真,返回b
print(c and b) #c为假,返回0
&:位运算符,是按位进行逻辑运算,将操作数转化为对应的的二进制进行逻辑运算,运算结果再转化为原来的进制。
eg2:a&b
2&3, 2对应的二进制为10,3对应的二进制为11,按位运算1and1为1,0and1为0,结果为10,结果返回2。
0&3,对应二进制为00,11,结果为00。