條件表達式:Python一行實現if-else的簡潔寫法

在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滿足,返回“及格”。

四、爲什麼用條件表達式?

  1. 代碼簡潔:減少縮進和行數,讓邏輯更緊湊;
  2. 適合小邏輯:只用於簡單的“二選一”或“多條件嵌套”(不超過2-3層);
  3. 提升可讀性:對於簡單判斷,一行代碼比多行縮進更直觀。

五、注意事項

  1. 只能返回值,不能執行語句:條件表達式是“表達式”,不是“語句”,所以不能包含賦值、打印等操作。例如:
   # 錯誤示例:條件表達式不能包含賦值語句
   x = 5
   result = (x if x > 0 else y = 0)  # 語法錯誤!
  1. 避免過度嵌套:如果條件超過3層嵌套(如多個if-else疊加),可讀性會下降。此時更推薦用傳統的if-elif-else結構:
   # 複雜條件用傳統if-elif-else更清晰
   score = 75
   if score >= 90:
       result = "優秀"
   elif score >= 60:
       result = "及格"
   else:
       result = "不及格"
  1. 優先級問題:條件表達式的運算優先級比普通的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,這樣既能保證代碼簡潔,又能兼顧可讀性。多嘗試用條件表達式優化小邏輯,你的代碼會更清爽!

小夜