Python 教程 - 決策構造

  1. if…else 宣告
  2. if 宣告
  3. if...else 宣告
  4. if...elif...else 宣告
  5. 巢狀 if 語句

在本節中,你將學習 Python 程式設計中的決策構造。最常用的決策構造是 if…else 構造。

if…else 宣告

當你有兩個語句塊並且你只想根據某些條件執行一個語句塊時,將使用 if…else 語句。在 Python 程式設計中,大多數 if…elif…else 都用作決策構造。

if 宣告

if 宣告中,你只有一個語句塊,並且僅當條件為 True 時才執行此塊,當條件為 False 時,將忽略該語句塊。

以下是 Python 中 if 宣告的語法:

if condition:
    statement(s)

Python 中的 if 語句主體不是用大括號括起來,而是使用縮排。主體的末端由第一條不在同一個縮排水平的行來決定。

if 宣告示例

考慮以下 if 使用語句的示例:

a = 24
if a % 2 == 0:
    print(a, "is an even number")
b = 23
if b % 2 == 0:
    print(b, "is an odd number")
24 is an even number

在此程式碼中,首先為變數 a 分配一個值,然後評估語句中的 if 條件。它通過 % 2 來檢查 a 是否為偶數,也就是是否 a % 2 為零,然後控制是否列印出相應的語句。

然後 b 分配一個奇數 23if 語句中的條件不是 True,因此 print(b, "is an odd number") 將不會執行。

if...else 宣告

以下是 if...else 語句的語法:

if condition:
    block of statements
else:
    block of statements

if...else 中,如果 if 條件為 True,則執行相應的語句塊,否則將執行 else 下的語句塊。

if...else 宣告示例

考慮下面 if...else 的程式碼:

a = 44
if a%2==0:
    print(a, "is an even number")
else:
    print(a, "is an odd number")
44 is an even number

如果 a 是偶數,它將列印 a is an even number,否則將列印 a is an odd number

注意

ifelse 塊不能同時執行或忽略。根據條件是否執行僅執行一個程式段 True

if...elif...else 宣告

以下是 if...elif...else 語句的語法:

if condition:
    block of statements
elif condition:
    block of statements
else:
    block of statements

elif 代表 else if 它可以在此 if..elif..else 構造中多次使用。

if 條件為 False 時,將檢查 elif 條件等等。當所有的 if 條件和 elif 條件是 False 時,else 部分將被執行。

注意

if...elif...else 僅能執行一個程式段。

if...elif...else 宣告示例

考慮下面的程式碼,其中我們使用了用於檢查多個條件的 if...elif...else 語句:

a = -34
if a > 0:
    print("Number is Positive")
elif a < 0:
    print("Number is Negative")
else:
    print("Number is zero")
Number is Negative

巢狀 if 語句

在 Python 中,你可以在 if 內部包含另一個 if 語句,這被稱為巢狀 if 語句。

你可以巢狀任何型別的 if 語句任意多次。但是在程式設計語言中使用巢狀 if 結構並不是一個好習慣,因為程式的可讀性會因此而變差。

巢狀 if 語句示例

在以下程式碼中,巢狀 if 結構用於查詢最大數量:

T = 52

if T > 25:
    if T < 50:
        print("Temperature is higher than 25 but lower than 50")
    else:
        print("Temperature is higher than 50")
else:
    if T < 0:
        print("Temperature is lower than 0")
    else:
        print("Temperature is higher than 0 but lower than 25")
Temperature is higher than 50