3.1.2 選擇結構的幾種形式
選擇結構通過判斷某些特定條件是否滿足來決定下一步的執行流程,是非常重要的控制結構。常見的有單分支選擇結構、雙分支選擇結構、多分支選擇結構以及嵌套的分支結構,形式比較靈活多變,具體使用哪一種最終還是取決於要實現的業務邏輯。循環結構和異常處理結構中也可以帶有else子句,也可以看作是特殊形式的選擇結構。
1 單分支選擇結構
單分支選擇結構是最簡單的一種形式,其語法如下所示,其中表達式後面的冒號“:”是不可缺少的,表示一個語句塊的開始,後面幾種其他形式的選擇結構和循環結構中的冒號也是必須要有的。
if 表達式:
語句塊
當表達式值為True或其他等價值時,表示條件滿足,語句塊將被執行,否則該語句塊將不被執行,繼續執行後面的代碼(如果有)。
1 >>> x = input(‘Input two numbers:‘) 2 Input two numbers: 3 4 3 >>> 4 >>> a,b = map(int,x.split()) 5 >>> 6 >>> a 7 3 8 >>> b 9 4 10 >>> 11 >>> if b > a: 12 a,b = b,a #序列解包,交換兩個變量的值 13 14 15>>> print(a,b) 16 4 3 17 >>>
註意:在Python中,代碼的縮進非常重要,縮進是體現代碼邏輯關系的重要方式,同一個代碼塊必須保證相同的縮進量。養成習慣,嚴格遵循這個要求吧。
2 雙分支選擇結構
雙分支選擇結構的語法為:
if 表達式:
語句塊 1
else:
語句塊 2
當表達式值為True或其他等價值時,執行語句塊 1 ,否則執行語句塊 2。代碼示例如下:
1 l = [ ‘1‘,‘2‘,‘3‘,‘4‘,‘5‘ ] 2 3 if l: 4 print(l) 5 else: 6 print(‘Empty‘) 7 8 9 # 執行結果:[‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘]
拓展知識:Python還提供了一個三元運算符,可以實現與選擇結構相似的效果。語法為:
value1 if condition else value2
當條件表達式condition的值與True等價時,表達式的值為 value1,否則表達式的值為 value2。另外,value1 和 value2本身也可以是復雜表達式,也可以包含函數調用。下面的代碼演示了上面的表達式的用法,可以看出,這個結構的表達式也具有惰性求值的特點。
1 >>> a = 5 2 >>> print(6) if a > 3 else print(5) 3 6 4 >>> 5 >>> print(6 if a > 3 else 5) #註意,雖然結果與上一行代碼一樣,但代碼含義不同 6 6 7 >>> 8 >>> b = 6 if a > 13 else 9 #賦值運算符優先級低 9 >>> b 10 9 11 >>> 12 >>> 13 >>> import math 14 >>> x = math.sqrt(9) if 5 > 3 else random.randint(1,100) 15 >>> x 16 3.0 17 >>> 18 >>> #三目運算符就這樣簡單地用用就好了,,
3 多分支選擇結構
多分支選擇結構為用戶提供了更多的選擇,可以實現復雜的業務邏輯,多分支選擇結構的語法為:
if 表達式 1:
語句塊 1
elif 表達式 2:
語句塊 2
elif 表達式 3:
語句塊3
...
else:
語句塊 n
其中,關鍵字 elif 是 else if的縮寫。下面的代碼演示了如何利用多分支選擇結構將成績從百分制轉換到等級制。
不好意思啊各位,,這篇文章沒寫完就發出去了,,,中午或晚上把這篇文章補全。。
3.1.2 選擇結構的幾種形式