第一个代码给出True
,但第二个代码给出错误,称
TypeError:不支持&:'的操作数类型str和int
Python中的&
和and
运算符有什么区别?不是一样吗?
student = "Justin"
第一代码
print(student == "Justin" and 1 == 1)
第二代码
print(student == "Justin" & 1 == 1)
&
是位AND运算符。
1 & 1 = 1
3 & 2 = 2
2 & 1 = 0
而CCD_ 5是布尔运算符。
由于True
等于1,False
等于0,1 & 0 = 0
,所以您可以使用&
进行布尔表达式并获得正确答案。0相当于False,Python对Boolean进行了类型转换。这就是为什么在使用&
进行布尔时会得到布尔结果