為什么Python中“2==2>1”結果為True


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

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

為什么會出現 2==2>1的結果為True?如果說這是運算符的優先級問題,那么后兩個式子為什么又都是False?

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

if (x > 1 and x < 5)

但是在Python中,可以這樣寫代碼:

if 1 < x < 5

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

注:True相當於1,False相當於0

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM