簡體   English   中英

如果value1 == value2在python中不是None,比較如何工作?

[英]How does compare work if value1 == value2 is not None in python?

我發現

a == b is not None

比較a == b ,如果它為True則執行的b is not None

(a == b) is not None  

a == (b is not None)

在哪里可以找到有關此類行為的更多信息? 這很簡單,但是我希望True is not None要執行

語言參考6.10中對此進行了記錄 比較

與C不同,Python中的所有比較運算都具有相同的優先級,該優先級低於任何算術,移位或按位運算。 同樣與C不同,像a < b < c這樣的表達式具有數學上的常規解釋:

 comparison ::= or_expr (comp_operator or_expr)* comp_operator ::= "<" | ">" | "==" | ">=" | "<=" | "!=" | "is" ["not"] | ["not"] "in" 

比較會產生布爾值: TrueFalse

比較可以任意鏈接,例如, x < y <= z等於x < y and y <= z ,除了y僅被評估一次(但是在兩種情況下,當x < y被發現時, z都不被評估。是假的)。

形式上,如果abcyz是表達式,而op1op2opN是比較運算符,則a op1 b op2 c ... y opN z等效於a op1 b and b op2 c and ... y opN z ,除了每個表達式最多計算一次。

注意, a op1 b op2 c並不意味着ac之間a任何形式的比較,因此,例如x < y > z是完全合法的(盡管可能不是很漂亮)。

==is not都是比較運算符,因此它們如上所述進行鏈接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM