ar = 86 print((var < 90) & (var >= 80))
印刷True。
True
但为什么所有这些都打印出来了False?
False
print(var < 90 & var >= 80) print(var < 90 & (var >= 80)) print((var < 90) & var >= 80) print(var < 90 & True)
您应该使用and运算符来执行布尔运算。
and
由于 python 支持链接关系运算符(即,您可以使用0 < var < 100而不是)并且由于运算符优先级在关系运算符之前0 < var and var < 100处理二进制运算(即加法、减法、按位运算等),您发布的所有失败案例实际上意味着其他事情。
0 < var < 100
0 < var and var < 100
var < 90 & var >= 80
(var < 90 & var) and (90 & var >= 80)
var < 90 & (var>=80)
var < 90 & True
(var<90) & var>=80
True & var >= 80
0 >= 80
var < (90 & True)
&
0
var < 0