如何在Python中使用三元運算子(條件式)

了解如何在 Python 中編寫條件表達式(三元運算子)。將內聯條件與標準 if-else 區塊進行比較。

在編輯器中嘗試此解決方案

概述

編寫條件邏輯是程式設計的核心部分。您經常需要根據條件是真還是假來為變數指派一個值。例如,如果使用者在線,則將狀態標籤設為「活動」;如果未提供使用者名,則指派「訪客」。

雖然標準的「if-else」語句需要 4 行程式碼,但 Python 提供了一種簡潔的速記方式,稱為三元運算子或條件式。它允許您在單一邏輯行內評估條件並指派值。語法是:「value_if_true if condition else value_if_false」。

三元運算子在用於簡單計算時具有很高的可讀性,並且可以直接放置在列表推導式、返回語句和函數呼叫中。然而,將多個三元運算子嵌套在一起是一種不好的做法,因為它很快就會變得不可讀。如果您的條件邏輯很複雜,請編寫標準的「if-elif-else」區塊。

程式碼和執行輸出

這個腳本示範了使用 Python 三元運算子編寫內聯條件語句,並將它們與標準 if-else 區塊進行比較。

ternary_operator.py
在編輯器中嘗試
status = "active"

# 1. Traditional if-else assignment
if status == "active":
    label = "System Online"
else:
    label = "System Offline"
print("Traditional label:", label)

# 2. Pythonic ternary operator assignment (Equivalent)
label_ternary = "System Online" if status == "active" else "System Offline"
print("Ternary label:", label_ternary)

# 3. Using ternary operator inside a print statement
score = 85
print(f"Result: {'Pass' if score >= 50 else 'Fail'}")
端子輸出
Traditional label: System Online
Ternary label: System Online
Result: Pass

逐步實施

  • 將三元表達式建構為: true_value if condition else false_value。
  • 在變數賦值中使用內嵌三元語句來減少程式碼佔用量。
  • 避免嵌套三元運算子(例如,a if b else c if d else e)以保持清晰的可讀性。

常見問題解答

Python 三元運算子比標準 if-else 區塊慢嗎?

不,它們具有相同的效能,因為它們編譯為相同的字節碼操作。選擇對於上下文來說最易讀的語法。

我可以執行語句而不是在三元運算子內傳回值嗎?

不,三元運算子是一個表達式,這意味著它必須計算出一個值。您不能在分支內編寫語句(例如賦值或列印關鍵字)。

相關主題

推薦的 Python 資源

透過相關的互動式教學、備忘單和程式碼比較來擴展您的知識。