TUTORIAL

Python 教程 - 決策構造

本 Python 教程介紹了 if else 等決策結構。

本頁內容

在本節中,你將學習 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 分配一個奇數 23。if 語句中的條件不是 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。

注意

if 和 else 塊不能同時執行或忽略。根據條件是否執行僅執行一個程式段 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