我想在一行if-else陳述句中分配給全域變數
一行宣告:
wins = 1 if num > num2 else lose = 1;
我收到無效的語法錯誤,只有一行。
原始陳述句有效:
if num > num2:
wins = 1
else:
lose = 1
我使用了 5000 多個陳述句,每一行并用分號分隔;以使其全部為一行。
uj5u.com熱心網友回復:
賦值是陳述句,而不是運算式,因此它們不能是條件運算式的一部分。不過,您可以在一行中完成,即使這本身并不是目的:
wins, lose = wins (num > num2), lose (num <= num2)
或使用賦值運算式:
wins, lose = wins (w := num > num2), lose (not w)
uj5u.com熱心網友回復:
您可以在一行中使用 walrus ( :=) 運算子(Python 3.8 )將其作為賦值運算式來完成:
(wins := wins 1) if num > num2 else (lose := lose 1)
但這沒有多大意義。您正在修改兩個不同的物件,并且試圖將它們塞入一個陳述句中并不是特別合乎邏輯。
4行版本是完全合理的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/335388.html
上一篇:用單個字符替換字串中的所有字母
下一篇:在有條件的行上聚合列
