在Python編程中,我們經常需要根據條件判斷來決定某個值的選擇或操作。最基礎的做法是使用if-else語句,但當我們只需要簡單的“滿足條件返回A,否則返回B”這種邏輯時,Python提供了一種更簡潔的寫法——條件表達式(也叫三元運算符)。它能讓你用一行代碼完成傳統if-else需要多行的工作,讓代碼更緊湊。
一、普通if-else的侷限¶
先回顧一下傳統的if-else寫法。比如判斷一個數是奇數還是偶數:
num = 7
if num % 2 == 0:
result = "偶數"
else:
result = "奇數"
print(result) # 輸出:奇數
這裏用了兩行代碼完成判斷,雖然邏輯清晰,但對於簡單的二選一場景來說,代碼量略顯冗餘。
二、條件表達式的語法¶
條件表達式的格式非常簡單,結構爲:
表達式1 if 條件 else 表達式2
- 如果
條件爲True,則返回表達式1的值; - 如果
條件爲False,則返回表達式2的值。
用條件表達式改寫上面的例子:
num = 7
result = "偶數" if num % 2 == 0 else "奇數"
print(result) # 輸出:奇數
一行代碼就完成了和傳統if-else相同的邏輯,非常簡潔!
三、基本用法示例¶
1. 簡單二選一判斷¶
判斷成績是否及格(60分爲及格線):
score = 55
result = "及格" if score >= 60 else "不及格"
print(result) # 輸出:不及格
2. 嵌套條件表達式(多條件判斷)¶
如果需要判斷多個條件(比如“優秀”“及格”“不及格”),可以嵌套條件表達式。注意:嵌套的條件表達式是依次判斷的,前一個條件不滿足纔會進入下一個判斷:
score = 85
result = "優秀" if score >= 90 else "及格" if score >= 60 else "不及格"
print(result) # 輸出:及格
- 先判斷
score >= 90?85不滿足,進入下一個條件; - 再判斷
score >= 60?85滿足,返回“及格”。
四、爲什麼用條件表達式?¶
- 代碼簡潔:減少縮進和行數,讓邏輯更緊湊;
- 適合小邏輯:只用於簡單的“二選一”或“多條件嵌套”(不超過2-3層);
- 提升可讀性:對於簡單判斷,一行代碼比多行縮進更直觀。
五、注意事項¶
- 只能返回值,不能執行語句:條件表達式是“表達式”,不是“語句”,所以不能包含賦值、打印等操作。例如:
# 錯誤示例:條件表達式不能包含賦值語句
x = 5
result = (x if x > 0 else y = 0) # 語法錯誤!
- 避免過度嵌套:如果條件超過3層嵌套(如多個
if-else疊加),可讀性會下降。此時更推薦用傳統的if-elif-else結構:
# 複雜條件用傳統if-elif-else更清晰
score = 75
if score >= 90:
result = "優秀"
elif score >= 60:
result = "及格"
else:
result = "不及格"
- 優先級問題:條件表達式的運算優先級比普通的
if-else更高,運算時建議用括號明確邏輯。例如:
a, b = 3, 5
# 正確:先判斷a > b,再判斷c > d(如果寫成a > b else c > d,可能會誤解)
result = a if a > b else c if c > d else d
六、總結¶
條件表達式是Python的“語法糖”,用一行代碼實現簡單的二選一邏輯,讓代碼更簡潔。記住:簡單邏輯用條件表達式,複雜多分支用傳統if-elif-else,這樣既能保證代碼簡潔,又能兼顧可讀性。多嘗試用條件表達式優化小邏輯,你的代碼會更清爽!