Python F-Strings:高階字串插值

了解如何使用 F 字串在 Python 中格式化字串。掌握表達式求值、浮點精確度格式、日期時間列印和自記錄語法。

在編輯器中嘗試

概述

格式化字串是開發人員每天執行的任務。從歷史上看,Python 格式化依賴 C 風格的“%”格式化或“.format()”方法。雖然這些舊語法風格很實用,但通常會導致程式碼冗長、難以閱讀。Python 3.6 引入了格式化字串文字,通常稱為 F 字串。 F 字串提供了一種簡潔、可讀且高度最佳化的語法,用於將變數和表達式直接插入字串文字中。

若要建立 F 字串,請在字串文字前面加上 `f` 或 `F` 前綴(例如,`f"Hello {name}"`)。放置在大括號“{...}”內的任何變數或 Python 表達式都會在執行時間計算並自動轉換為字串。 F 字串不僅適用於變數;它也適用於變數。您可以呼叫函數、執行數學計算,甚至可以存取大括號內的字典值,從而無需使用臨時變數。

F 字串還具有豐富的格式化語言。透過在大括號內附加冒號“:”,您可以指定格式規則。例如,「{value:.2f}」將浮點數四捨五入到小數點後兩位,「{num:03d}」用前導零填滿整數,「{date:%Y-%m-%d}」格式化日期時間物件。在Python 3.8+ 中,F-string 引入了偵錯語法 `{variable=}`,它會自動列印變數名稱及其值,使偵錯快速且輕鬆。

程式碼和執行輸出

演示浮點格式、表達式求值和自記錄等號調試。

fstrings_demo.py
在編輯器中嘗試
name = "Charlie"
price = 19.995
quantity = 3

# Basic interpolation and math evaluation
receipt = f"Customer: {name} | Total: ${price * quantity:.2f}"
print(receipt)

# Padding and alignment
number = 42
padded = f"ID: {number:05d}"
print(padded)

# Self-documenting debugging syntax (Python 3.8+)
value = 100
print(f"Debug output: {value=}")
端子輸出
Customer: Charlie | Total: $59.99
ID: 00042
Debug output: value=100

逐步實施

  • 美化報告和儀表板中的數位輸出
  • 建構動態 SQL 查詢或 API 請求負載
  • 在本地測試期間列印快速調試語句

常見問題解答

F 字串比其他字串格式化方法更快嗎?

是的,F 字串比 % 格式化和 .format() 更快,因為它們在運行時作為優化的字節碼進行評估,而不是在執行時進行解析。

如何在 F 字串中列印文字大括號?

您可以透過將大括號加倍來轉義它們,例如, f"{{Hello}}" 將列印文字文字「{Hello}」。

相關主題

推薦的 Python 資源

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