簡體   English   中英

在一行 if-else 語句中賦值給變量

[英]Assign to variable inside one line if-else statement

我想在一行if-else語句中分配給全局變量

一行聲明:

wins += 1 if num > num2 else lose += 1;

我收到無效的語法錯誤,只有一行。

原始語句有效:

if num > num2:
    wins += 1
else:
    lose += 1  

我使用了 5000 多個語句,每一行並用分號分隔; 使其全部成為一行。

賦值是語句,而不是表達式,因此它們不能是條件表達式的一部分。 不過,您可以在一行中完成,即使這本身並不是目的:

wins, lose = wins + (num > num2), lose + (num <= num2)

或使用賦值表達式:

wins, lose = wins + (w := num > num2), lose + (not w)

可以在一行中使用 walrus ( := ) 運算符(Python 3.8+)將其作為賦值表達式完成:

(wins := wins + 1) if num > num2 else (lose := lose + 1)

但這沒有多大意義。 您正在修改兩個不同的對象,並且試圖將它們塞入一個語句中並不是特別合乎邏輯。

4行版本是完全合理的。

暫無
暫無

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

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