繁体   English   中英

Python 3 boolean 条件打印假而不是真

[英]Python 3 boolean condition prints false instead of true

为什么会这样?

>>> print(1==1 & 6<9)
False
>>> print(1==1 & 5<9)
True 

& 是按位和,请参阅https://wiki.python.org/moin/BitwiseOperators 不为 0 的一切都是真实的。 你需要“and”而不是“&”。

我相信您打算组合多个条件,因此您应该使用逻辑运算符“and”而不是“&”,它是按位运算符。

将您的代码更改为以下内容:

print(1==1 and 6<9)
print(1==1 and 5<9)

1==1&6<9,这里 & 将首先评估。 1&6是按位计算,将计算为 0。1 1&5是按位计算,计算结果为 1。

1==1&6<9 => 1==0<9
1==1&5<9 => 1==1<9

根据链接( https://docs.python.org/3/reference/expressions.html#comparisons )两者都将评估为:

1==0 and 0 < 9 ==> False 
1==1 and 1 < 9 ==> True

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM