python判斷式一行 - 在一行上放置一個簡單的if-then-else語句




python三元表达式if else (4)

可能重複:
Python三元運算符

我剛剛進入Python,我非常喜歡語法的簡潔。 但是,是否有更簡單的方法來編寫if - then - else語句,以便它適合於一行?

例如:

if count == N:
    count = 0
else:
    count = N + 1

有沒有更簡單的方式來寫這個? 我的意思是,在Objective-C中,我會將其寫為:

count = count == N ? 0 : count + 1;

Python有沒有類似的東西?

更新

我知道在這種情況下,我可以使用count == (count + 1) % N

我在問一般的語法。


一般三元語法:

value_true if <test> else value_false

另一種方式可以是:

[value_false, value_true][<test>]

例如:

count = [0,N+1][count==N]

這在選擇一個分支之前評估兩個分支。 只評估所選分支:

[lambda: value_false, lambda: value_true][<test>]()

例如:

count = [lambda:0, lambda:N+1][count==N]()

而且,如果語法仍然可以使用“普通”,並將其與冒號混合成一行。

if i > 3: print("We are done.")

要么

field_plural = None
if field_plural is not None: print("insert into testtable(plural) '{0}'".format(field_plural)) 

<execute-test-successful-condition> if <test> else <execute-test-fail-condition>

隨著你的代碼片段,它將成為,

count = 0 if count == N else N + 1

count = 0 if count == N else N+1

- 三元操作符。 雖然我會說你的解決方案比這更可讀。





if-statement