深入Python條件控制,不只是ifelse

if/else

是我們用的最常用的條件控制語法。

而在Python語言中,有4種條件控制語法,完美的短短的一行程式碼就能實現同樣的功能,把Python優雅簡潔的程式設計思想體現得淋漓盡致。

深入Python條件控制,不只是if/else

第一種 if/else

常用的if/else語法,廢話不說,不懂的請大補腦白金。

c = a if a>b else b

第二種 三元表示式

條件為真時的結果 if 判段的條件 else 條件為假時的結果

c = [b, a][a > b]

c = a,當a>b為真時

c = b,當a>b為假時

第三種 二維列表

c = [b, a][a > b]

當a>b為真時,索引值為1,即c = [b, a][1] = a

當a>b為假時,索引值為0,即c = [b, a][0] = b

知識點擴充套件:

對於python來說1與True,0與False是完全相等,即[b, a][True] == [b, a][1]

深入Python條件控制,不只是if/else

第四種 邏輯運算子

c = (a>b and a or b)

當a>b為真時,c = a

當a>b為假時, c = b

知識點擴充套件:

在Python中邏輯運算子and 和or,採用惰性求值(lazy evaluation)的方式,從左向右解析,一旦結果可以確定就停止

例如:

A, C = True, True

B = False

則 A and B and C ,則不會解析C

且返回值通常是最後一個變數。

深入Python條件控制,不只是if/else

同樣的邏輯(or),只要有一個是true,即停止解析運算數,返回最近為true的變數,即 3 or 4,值為3;改變順序4 or 3 即為4.

回到:c = (a>b and a or b)

a>b為真時,當a為真時,不解析b,直接返回a,即c = a;

a>b為假時,a>b and a也為假,a不解析;直接解析b,並返回b的值,即c = b;

總結

以上4種控制的語法中,一和二是適用頻率較高的,如果執行語句較簡單推薦使用方法二。

而三和四,這兩種方法適用於特殊要求的場景下,程式碼寫多了,看多了,自然就熟悉了。