if/else是我們用的最常用的條件控制文法。
而在Python語言中,有4種條件控制文法,完美的短短的一行代碼就能實作同樣的功能,把Python優雅簡潔的程式設計思想展現得淋漓盡緻。
第一種 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]
第四種 邏輯運算符
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
且傳回值通常是最後一個變量。
同樣的邏輯(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種控制的文法中,一和二是适用頻率較高的,如果執行語句較簡單推薦使用方法二。
而三和四,這兩種方法适用于特殊要求的場景下,代碼寫多了,看多了,自然就熟悉了。