很簡單行:爲什麼這個簡單的條件表達式不起作用?
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
工作正常。
很簡單行:爲什麼這個簡單的條件表達式不起作用?
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
工作正常。
您錯誤地使用了它。使用這種方式:
a = 2 if i in [1, 3, 6] else 7
呃什麼是id * ot,我總是忘記額外的'='。謝謝!我先選擇了這個答案,因爲它是先添加的。 – Gabriel
應該
a = 2 if i in [1, 3, 6] else 7
你可以把它讀作:
a = (((2 if i in [1, 3, 6] else 7)))
這是說,在分配標誌的右側的表達式是充分評估並將結果分配到左側。表達式本身是兩個值由條件分開。
對不起,傢伙,我不時忘記額外的'=',結果讓人困惑,爲什麼線路不工作。 – Gabriel