簡體   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