[英]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.