1. 前言
在 Python 程式設計中,使用一行來撰寫 if 條件語句可以讓程式碼更簡潔,特別是在條件判斷頻繁出現的情況下非常實用。本文將詳細介紹如何在 Python 中將「if 條件語句」寫成「一行」,並透過幾種技巧進行說明。我們會介紹三元運算子與列表生成式(List Comprehension)等實用範例,幫助你撰寫更清晰、高效的程式碼。
2. 使用 Python 三元運算子撰寫一行 if 語句的方法
在 Python 中,透過使用三元運算子(條件運算式),可以將 if 條件語句寫成一行。這在根據條件返回特定值時非常有用,能夠讓程式碼更加簡潔。
三元運算子的語法
Python 的三元運算子語法如下:
變數 = 值1 if 條件 else 值2
這段語法的意思是:若條件為 True,則回傳「值1」;若為 False,則回傳「值2」。
使用範例:判斷偶數或奇數
例如,想判斷一個數字是偶數還是奇數,並根據結果回傳不同的文字,可以這樣寫:
number = 4
result = "偶數" if number % 2 == 0 else "奇數"
print(result) # 輸出:偶數
如上所示,利用一行即可撰寫條件判斷,在處理簡單的邏輯時特別方便。
實際應用範例:根據登入狀態顯示訊息
例如,當我們想根據使用者的登入狀態顯示不同訊息時,也可以使用三元運算子來處理:
is_logged_in = True
message = "歡迎回來" if is_logged_in else "請先登入"
print(message) # 輸出:歡迎回來
三元運算子非常適合用來做根據條件選擇的簡單處理。不過,若邏輯過於複雜,會影響程式可讀性,建議只用於簡單的情境中。

3. 結合列表生成式與 if 條件語句
Python 的列表生成式(List Comprehension)是一種強大的寫法,可以在建立列表時讓程式碼更加簡潔。透過與 if 條件語句結合,可以根據條件產生特定內容的列表。
列表生成式的基本語法
若要在列表生成式中使用 if 條件語句,語法如下:
列表 = [處理 for 變數 in 可迭代物件 if 條件]
使用範例:建立偶數的列表
若要從 0 到 9 的數字中擷取出偶數並放入列表,可以這樣撰寫:
even_numbers = [x for x in range(10) if x % 2 == 0]
print(even_numbers) # 輸出: [0, 2, 4, 6, 8]
列表生成式的應用範例
列表生成式不僅可以用來篩選資料,也能進行轉換。例如,從字串列表中挑出長度超過特定字數的單字:
words = ["apple", "banana", "cherry", "date"]
filtered_words = [word for word in words if len(word) > 5]
print(filtered_words) # 輸出: ['banana', 'cherry']
使用列表生成式可以有效縮短程式碼長度,並根據條件快速完成資料篩選與轉換。
4. 結合 Python 的 if 與 for 寫成一行
將 for 迴圈與 if 條件語句結合後,可以一行撰寫只處理符合特定條件的元素。這在處理大量資料或列表時特別實用,能讓程式碼更簡潔。
if 與 for 的一行語法
基本語法如下:
列表 = [處理 for 變數 in 可迭代物件 if 條件]
使用範例:建立偶數平方的列表
若要從 1 到 10 的數字中,選出偶數並將其平方後放入列表,可以這樣寫:
squared_evens = [x**2 for x in range(1, 11) if x % 2 == 0]
print(squared_evens) # 輸出: [4, 16, 36, 64, 100]
應用範例:根據條件篩選資料
以下範例是從列表中篩選出所有正數並轉成新的列表:
numbers = [-5, -1, 2, 8, -3, 7]
positive_numbers = [num for num in numbers if num > 0]
print(positive_numbers) # 輸出: [2, 8, 7]
透過 if 和 for 的結合,可以在不冗長的情況下進行高效的資料處理與過濾。

5. 使用賦值運算式(海象運算子)撰寫一行 if 語句
從 Python 3.8 開始新增的賦值運算式(海象運算子):=
,允許我們在 if 條件語句中同時進行變數的賦值。這個特性讓我們能夠在判斷條件的同時,儲存計算結果,提高程式效率。
賦值運算式的語法與基本用法
使用海象運算子時,語法如下:
if (變數 := 表達式) 條件:
執行內容
使用範例:根據列表長度做條件判斷
下列範例會取得列表長度並用作條件,同時進行對應的處理:
some_list = [1, 2, 3, 4, 5]
if (length := len(some_list)) > 3:
print(f"列表的長度為 {length},超過了 3")
# 輸出: 列表的長度為 5,超過了 3
實際應用場景
使用海象運算子可以避免重複計算,提高效能。特別是在處理列表、字串等需要多次使用同一結果的情況下,非常實用。
6. 使用一行 if 條件語句時的注意事項
一行 if 條件語句非常強大,但若過度使用或套用在複雜邏輯上,會導致程式難以閱讀。建議僅在簡單且直觀的條件判斷時使用;當邏輯較複雜時,還是以傳統的 if 結構撰寫為佳,以確保程式的可讀性與可維護性。
7. 總結與後續學習方向
本文介紹了各種在 Python 中將 if 條件語句寫成一行的方法,從基本的條件判斷到列表操作,再到海象運算子的進階應用。我們也說明了一行 if 的優點與潛在注意事項。透過這些技巧,能有效提升你在日常 Python 編程中的效率與程式碼品質,歡迎實際應用並持續練習,進一步精進你的開發技能!