1. 前言 Python 以其簡潔且直觀的語法著稱,是許多程式設計初學者學習的第一門語言。其中,「條件判斷」是控制程式行為時不可或缺的元素。本章將學習 Python 中最基本的條件判斷語法「if 陳述式」。條件判斷在 Python 中的重要性 當程式需要根據特定條件執行不同處理時,條件判斷就扮演了重要角色。Python 中的 if
陳述式是實現條件判斷的基本語法。理解它可以大大提升程式的靈活性與實用性。if 陳述式的作用 if
陳述式會在特定條件為真時,執行指定的程式碼。透過這種結構,程式可以根據輸入或外部環境做出動態反應。
2. if 陳述式的基本語法 Python 的 if
陳述式非常簡單,即使是第一次學習程式的使用者也能輕鬆理解。本章將說明 if
的基本結構與使用方式。基本結構 Python 中 if
陳述式的基本語法如下:if 條件式:
要執行的程式碼
縮排的重要性 在 Python 中,縮排(Indentation)用來表達程式碼的階層結構。if
條件為真時要執行的程式碼,必須以一個層級的縮排表示。 範例:縮排正確的情況 if 10 > 5:
print("10 大於 5")
範例:縮排錯誤的情況 if 10 > 5:
print("10 大於 5") # 會發生錯誤
如果縮排不正確,Python 會產生錯誤訊息,因此必須特別注意。什麼是條件式 在 if
陳述式中,條件式是一個會回傳 True
或 False
的運算式。當條件為 True
時,if
區塊內的程式碼會被執行。例如,以下程式碼會顯示訊息,因為條件成立:if 5 == 5:
print("條件為真")
反之,若條件不成立,則 if
區塊內的程式碼不會被執行:if 5 != 5:
print("這段程式碼不會被執行")
3. 比較運算子與邏輯運算子 在使用 Python 的 if
陳述式時,條件式的組成少不了「比較運算子」與「邏輯運算子」。本章將詳細說明這些運算子的功能與實際用法。什麼是比較運算子 比較運算子用來比較兩個值,回傳 True
或 False
。以下是 Python 中常用的比較運算子:運算子 意思 使用範例 結果 ==
等於 5 == 5
True
!=
不等於 5 != 3
True
>
大於 5 > 3
True
<
小於 5 < 3
False
>=
大於等於 5 >= 5
True
<=
小於等於 3 <= 5
True
範例:使用比較運算子的條件判斷 x = 10
if x > 5:
print("x 大於 5")
什麼是邏輯運算子 邏輯運算子用來組合多個條件式。Python 中常用的邏輯運算子有以下三種:運算子 意思 使用範例 結果 and
兩個條件都為 True
5 > 3 and 10 > 5
True
or
任一條件為 True
5 > 3 or 10 < 5
True
not
反轉條件結果 not 5 > 3
False
範例:使用邏輯運算子的條件判斷 x = 10
y = 20
if x > 5 and y > 15:
print("x 大於 5,且 y 大於 15")
結合比較與邏輯運算子 在 if
陳述式中,結合比較與邏輯運算子可以處理更複雜的條件。 範例:結合多個條件 age = 25
income = 50000
if age > 18 and income > 30000:
print("符合條件")
這段程式會在 age
大於 18 且 income
大於 30000 的情況下執行。
4. if-else 陳述式 除了基本的 if
陳述式外,當條件不成立時想執行其他處理,就可以使用 else
陳述式。本章將說明 if-else
的結構與使用方法。if-else 的基本結構 if-else
陳述式的語法如下:if 條件式:
條件為 True 時的處理
else:
條件為 False 時的處理
使用範例 以下是使用 if-else
的簡單範例。 範例:if-else 的應用 x = 10
if x > 5:
print("x 大於 5")
else:
print("x 小於或等於 5")
此程式會根據 x
的值執行不同的訊息輸出。實用範例 if-else
常用於根據使用者輸入或狀況進行不同的處理。 範例:根據輸入值進行判斷 number = int(input("請輸入一個數字: "))
if number % 2 == 0:
print("這是偶數")
else:
print("這是奇數")
這段程式會根據輸入的數值判斷是偶數還是奇數。5. if-elif-else 陳述式 當需要處理多個條件時,僅使用 if
可能會讓程式變得冗長。在這種情況下,使用 Python 的 if-elif-else
陳述式可以更有效率地處理多重條件。本章將說明其結構與使用範例。if-elif-else 的基本結構 if-elif-else
陳述式的語法如下:if 條件式1:
條件式1 為 True 時的處理
elif 條件式2:
條件式2 為 True 時的處理
else:
以上條件皆不成立時的處理
elif
是 “else if” 的縮寫,可用來依序檢查多個條件。使用範例 以下是 if-elif-else
的簡單範例。 範例:根據分數顯示等級 score = 85
if score >= 90:
print("評價:A")
elif score >= 80:
print("評價:B")
elif score >= 70:
print("評價:C")
else:
print("評價:D")
此範例會根據 score
的值顯示不同評價訊息。elif 的重要性 透過 elif
,條件會依序檢查,當符合其中一個條件後,後續條件將不再判斷,因此能有效處理重疊條件的情境。 範例:條件的優先順序 temperature = 30
if temperature > 35:
print("是酷熱的天氣")
elif temperature > 25:
print("是炎熱的天氣")
elif temperature > 15:
print("是舒適的天氣")
else:
print("是寒冷的天氣")
此程式碼會根據溫度顯示最先符合的條件對應的訊息。省略 else else
並非必須,當不需要處理所有條件的情況時可以省略。 範例:省略 else age = 20
if age >= 18:
print("已成年")
elif age >= 13:
print("是青少年")
6. 巢狀的 if 陳述式 當條件更複雜時,可以使用巢狀(巢狀結構)方式撰寫 if
陳述式。本章將說明巢狀 if
的寫法與使用上的注意事項。巢狀 if 的基本結構 巢狀 if
的語法如下:if 條件式1:
if 條件式2:
條件1 和 條件2 都為 True 時執行的處理
使用範例 以下是使用巢狀 if
陳述式的範例。 範例:結合兩個條件的判斷 age = 25
income = 40000
if age > 18:
if income > 30000:
print("是成年人且收入充足")
else:
print("是成年人但收入不足")
else:
print("是未成年人")
這段程式碼會根據年齡與收入進行條件判斷。注意事項 過度使用巢狀結構會使程式難以閱讀。因此,建議適當使用邏輯運算子或拆分條件式來簡化程式。 範例:簡化巢狀結構 age = 25
income = 40000
if age > 18 and income > 30000:
print("是成年人且收入充足")
elif age > 18:
print("是成年人但收入不足")
else:
print("是未成年人")
7. if 陳述式的簡寫(三元運算子) 在 Python 中,若是簡單的條件判斷,可以使用「三元運算子」以單行方式撰寫。本章將說明三元運算子的基本語法、使用範例與注意事項。三元運算子的基本語法 三元運算子的語法如下:值1 if 條件式 else 值2
若 條件式
為 True
,則回傳 值1
。 若 條件式
為 False
,則回傳 值2
。 使用範例 範例:判斷數值正負 x = 10
result = "正數" if x > 0 else "負數"
print(result)
上述程式會根據 x
的值顯示「正數」或「負數」。 範例:判斷最大值 a, b = 5, 10
max_value = a if a > b else b
print(f"最大值是 {max_value}")
此範例會比較 a
與 b
的值,將較大者指定給 max_value
。巢狀三元運算子 三元運算子也可以巢狀使用,但可讀性可能會降低。 範例:巢狀三元運算子 x = 0
result = "正數" if x > 0 else "負數" if x < 0 else "零"
print(result)
此程式碼會判斷 x
是正數、負數還是零。注意事項 三元運算子簡潔實用,但不適合複雜條件。 若條件邏輯過多,建議使用傳統的 if-else
結構以提高可讀性。
8. 使用 if 陳述式的注意事項 在使用 Python 的 if
陳述式時,有幾個常見特性與注意點必須了解。本章整理了避免錯誤的重點。None 與空值的判斷 在 Python 中,None
、空字串、空串列等會被視為 False
。 範例:判斷 None x = None
if not x:
print("x 是 None")
範例:判斷空串列 items = []
if not items:
print("串列是空的")
is
與 ==
的差異==
比較的是「值是否相等」。is
比較的是「是否為同一個物件(記憶體位置)」。 範例:is
與 ==
的差別 a = [1, 2, 3]
b = [1, 2, 3]
print(a == b) # True(值相等)
print(a is b) # False(不是同一個物件)
條件式的撰寫注意事項 當條件較複雜時,建議使用括號明確條件的優先順序。 範例:使用括號提升可讀性 x = 10
y = 5
if (x > 5 and y < 10) or x == 10:
print("條件成立")
9. 總結 在這篇教學中,我們從基礎到進階學習了 Python 的 if
陳述式。以下為重點整理:Python if
陳述式的基礎 if
陳述式只在條件為 True
時執行特定程式碼。Python 透過縮排來區分程式結構,正確的縮排非常重要。 基本語法 if 條件式:
要執行的程式碼
條件判斷的延伸 if-else
可處理條件為 False 時的情況。if-elif-else
可有效處理多個條件。 範例:if-elif-else score = 75
if score >= 90:
print("評價:A")
elif score >= 75:
print("評價:B")
else:
print("評價:C")
處理複雜條件 可結合比較與邏輯運算子撰寫複雜條件。 使用巢狀 if
可以建立階層式條件。 範例:複雜條件式 age = 25
income = 50000
if age > 18 and income > 30000:
print("符合條件")
活用簡寫(三元運算子) 簡單條件可用三元運算子寫成一行。 條件複雜時,建議使用標準 if-else
結構。 範例:三元運算子 result = "合格" if score >= 60 else "不合格"
注意事項 空值與 None
在條件中會被當成 False
。 了解 is
與 ==
的差異並正確使用。 條件式過長時,使用括號提升可讀性與正確性。 下一步學習方向 掌握 if
陳述式能大幅提升程式的靈活度,接下來建議進一步學習以下主題:迴圈與條件判斷的結合 學習如何在 for
或 while
迴圈中使用 if
判斷。 例外處理 學會使用 try-except
結構處理程式錯誤。 函式與條件判斷 本篇教學到此結束。希望這些知識能幫助你撰寫更進階的 Python 程式,掌握條件判斷的技巧將是邁向進階開發的重要一步。