在python中,如何使用布尔值?

0 python

print(1!=1 & 1!=1) print(1!=1 & 2!=2) 为什么两个返回不同的值?

Kev*_*vin 6

&具有比更高的优先级!=,因此您的陈述等于

print(1!=(1 & 1)!=1)
print(1!=(1 & 2)!=2)
Run Code Online (Sandbox Code Playgroud)

1&1为1,而1&2为0 *,因此等价于

print(1!=1!=1)
print(1!=0!=2)
Run Code Online (Sandbox Code Playgroud)

因为!=支持链接,所以这些等同于

print((1!=1) and (1!=1))
print((1!=0) and (0!=2))
Run Code Online (Sandbox Code Playgroud)

相当于

print(False and False)
print(True and True)
Run Code Online (Sandbox Code Playgroud)

相当于

print(False)
print(True)
Run Code Online (Sandbox Code Playgroud)

(*如果您想“很奇怪,在布尔型上下文中求值时,我认为1和2都为True。不应该将它们和在一起求和为True吗?”,仅当您使用布尔值AND运算符时才有效and而不是按位AND运算符&。)