0 if True else 1 + 1 if False else 1
其值爲0但是當我用括號寫這樣
(0 if True else 1) + (0 if False else 1)
它正確的計算結果爲1,什麼是在第一次發生
案件。
0 if True else 1 + 1 if False else 1
其值爲0但是當我用括號寫這樣
(0 if True else 1) + (0 if False else 1)
它正確的計算結果爲1,什麼是在第一次發生
案件。
0 if True else 1 + 1 if False else 1
居然是:
(0) if (True) else ((1 + 1) if (False) else (1))
這絕對是你想要什麼不同:
((0) if (True) else (1)) + ((1) if (False) else (1))
爲ternary operator
從left to right
讀取和+
具有比條件運算符的優先級低。所以,這兩者是等價的:
>>> 0 if True else 1 + 1 if False else 1
0
>>> 0 if True else ((1 + 1) if False else 1)
0
三元運算符看起來像「條件值,如果真:值,如果假的」,但似乎蟒蛇不支持它,但是我們可以使用的if-else更換。stype類似於「condition if(b_1)else b_2」,所以您可以依賴它來匹配。如果b_1爲True,則值爲條件,如果b_2爲True,則值爲b_2。
優秀解釋。+ 1 – 2012-08-12 13:00:23