1. 程式人生 > Python入門教學 >15 Python 的條件控制語句

15 Python 的條件控制語句

程式並非是一成不變的向下執行,有的時候也要根據條件的不同選擇不一樣的程式碼,這個時候便用到了分支結構。那麼到底如何讓程式根據條件的不同選擇不一樣的程式碼呢?我們一起來看下:

1. 分支選擇結構

1.1 功能與語法

程式可以根據條件執行不同的分支,程式結構如下圖所示:

圖片描述

圖:條件選擇結構

在圖中,對條件進行判斷:

  • 如果條件為真,執行“條件為真的分支”
  • 如果條件為假,執行“條件為假的分支”

Python 提供了 if 條件控制語句用於選擇執行流程,Python 的 if 語句的語法如下:

if 條件:
    條件為真的分支
else:
    條件為假的分支

if 語句中可以省略 else 分支,語法如下;

if 條件:
    條件為真的分支

1.2 例子

例子 1,編寫程式 if-else.py 如下:

案例演示 預覽 複製 複製成功!
if 2 > 1:
    print('2 > 1 is true')
else:
    print('2 > 1 is false')
執行案例 點選 "執行案例" 可檢視線上執行效果
  • 在第 1 行,判斷條件 2 > 1 是否成立
  • 在第 2 行,因為條件成立,執行 print(‘2 > 1 is True’)
  • 在第 3 行,因為條件不成立,不執行 print(‘2 > 1 is False’)

程式 if-else.py 的輸出結果為:

2 > 1 is true

例子 2,編寫程式 if.py 如下:

案例演示 預覽 複製 複製成功!
if 1 == 1:
    print('1 == 1 is true')
執行案例 點選 "執行案例" 可檢視線上執行效果
  • 在第 1 行,判斷條件 1 == 1 是否成立
  • 在第 2 行,因為條件成立,執行 print(‘1 == 1 is True’)

程式 if.py 的輸出結果為:

1 == 1 is true

2. 多分支選擇結構

2.1 功能與語法

程式可以根據多個條件的篩選執行不同的分支,程式結構如下圖所示:

圖片描述

在圖中,對多個條件進行判斷:

  • 如果條件 1 為真,則執行程式碼塊 1
  • 如果條件 2 為真,則執行程式碼塊 2
  • 如果條件 3 為真,則執行程式碼塊 3
  • 如果以上條件都不滿足,則執行程式碼塊 4

Python 提供了 elif 語句用於選擇多個條件,Python 的 elif 語句的語法如下:

if 條件 1:
    程式碼塊 1
elif 條件 2:
    程式碼塊 2
elif 條件 3:
    程式碼塊 3
else:
    程式碼塊 4

if 語句中可以省略 else 分支,語法如下;

if 條件 1:
    程式碼塊 1
elif 條件 2:
    程式碼塊 2
elif 條件 3:
    程式碼塊 3

2.2 例子

編寫程式 select.py 如下:

案例演示 預覽 複製 複製成功!
color = input()
if color == 'red':
    print('color is red')
elif color == 'green':
    print('color is green')
elif color == 'blue':
    print('color is ')
else:
    print('color is other')
執行案例 點選 "執行案例" 可檢視線上執行效果
  • 在第 1 行,將使用者輸入的字串儲存在變數 color 中
  • 在第 2 行,執行條件判斷:color 是否等於 ‘red’,如果成立則執行第 3 行對應的分支
  • 在第 4 行,執行條件判斷:color 是否等於 ‘green’,如果成立則執行第 5 行對應的分支
  • 在第 6 行,執行條件判斷:color 是否等於 ‘blue’,如果成立則執行第 7 行對應的分支
  • 在第 8 行,如果以上條件判斷都不成立,則執行第 9 行對應的分支

執行程式 select.py,結果如下:

C:\> python select.py
green
color is green
  • 程式執行時,輸入字串 green
  • 滿足程式第 4 行的條件判斷,輸出結果為 color is green

再次執行程式 select.py,結果如下:

C:\> python select.py
yellow
yellow is other
  • 程式執行時,輸入字串 yellow
  • 第 2 行、第 4 行、第 6 行的條件判斷均不成功,執行第 9 行,輸出結果為 yellow is other

3. 分支巢狀結構

3.1 功能與語法

在分支選擇程式中,分支也可以是分支選擇語句,形成分支巢狀結構,如下所示:

圖片描述

圖:分支巢狀結構
  • 程式首先判斷條件 1 是否為真
  • 如果條件 1 為真,則判斷條件 2 是否為真
    • 條件 1 為真並且條件 2 為真,執行程式碼塊 1
    • 條件 1 為真並且條件 2 為假,執行程式碼塊 2
  • 如果條件 1 為假,則判斷條件 3 是否為真
    • 條件 1 為假並且條件 3 為真,執行程式碼塊 3
    • 條件 1 為假並且條件 3 為假,執行程式碼塊 4

3.2 例子

編寫程式 nest.py 如下:

案例演示 預覽 複製 複製成功!
sex = input()
age = int(input())
if sex == 'male':
    if age > 50:
        print('old male')
    else:
        print('young male')
else:
    if age > 50:
        print('old female')
    else:
        print('young female')
執行案例 點選 "執行案例" 可檢視線上執行效果
  • 在第 1 行,使用者輸入性別 sex
  • 在第 2 行,使用者輸入年齡 age,注意:使用函式 int() 將使用者輸入的字串轉換為整數
  • 在第 3 行,判斷使用者性別
    • 如果為真則執行第 4 行的 if 語句
    • 如果為假則執行第 9 行的 if 語句

執行程式 nest.py,結果如下:

C:\> python nest.py
female
20
young female
  • 首先,使用者輸入性別為 female
  • 然後,使用者輸入年齡 20
  • 經過第 3 行的條件判斷 sex == male 和 第 9 行的條件判斷 age > 50
    • 執行第 12 行的語句
    • 輸出 young female

4. 小結

分支結構在工作中可謂是基本每天都會寫,所以掌握分支結構也就顯得非常重要。記得把課程中的程式碼多敲幾遍,熟能生巧。