爲何Python中「2==2>1」結果爲True

在Python中,你可能會發現這樣一個奇怪的現象:javascript

>>> 2 == 2 > 1 True >>> (2 == 2) > 1 False >>> 2 == (2 > 1) False

爲何會出現 2==2>1的結果爲True?若是說這是運算符的優先級問題,那麼後兩個式子爲何又都是False?java

實際上這涉及到了Python的 鏈式對比(ChainedComparisons)。在其餘語言中,有一個變量 x,若是要判斷x是否大於1,小於5,可能須要這樣寫代碼:spa

if (x > 1 and x < 5)

可是在Python中,能夠這樣寫代碼:code

if 1 < x < 5

Python可以正確處理這個鏈式對比的邏輯。回到最開始的問題上, ==等於符號和 <小於符號,本質沒有什麼區別。因此實際上 2==2>1也是一個鏈式對比的式子,它至關於 2==2and2>1。此時,這個式子就等價於 TrueandTrue。因此返回的結果爲True。token

注:True至關於1,False至關於0ip

原文來自:https://cloud.tencent.com/developer/article/1386941io

相關文章
相關標籤/搜索