2015-10-05 34 views
7

很簡單行:爲什麼這個簡單的條件表達式不起作用?

i = 3 
a = 2 if i in [1, 3, 6] else a = 7 

失敗:

SyntaxError: can't assign to conditional expression 

而擴展爲:

if i in [1, 3, 6]: 
    a = 2 
else: 
    a = 7 

工作正常。

+0

對不起,傢伙,我不時忘記額外的'=',結果讓人困惑,爲什麼線路不工作。 – Gabriel

回答

11

您錯誤地使用了它。使用這種方式:

a = 2 if i in [1, 3, 6] else 7 
+1

呃什麼是id * ot,我總是忘記額外的'='。謝謝!我先選擇了這個答案,因爲它是先添加的。 – Gabriel

4

應該

a = 2 if i in [1, 3, 6] else 7 

你可以把它讀作:

a = (((2 if i in [1, 3, 6] else 7))) 

這是說,在分配標誌的右側的表達式是充分評估並將結果分配到左側。表達式本身是兩個值由條件分開

相關問題