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 程式,掌握條件判斷的技巧將是邁向進階開發的重要一步。