如何在 Python 中格式化字串(f 字串和格式)

學習 Python 中最好的字串格式化技術。將現代 f 字串、format() 和百分比格式與程式碼範例進行比較。

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

概述

格式化字串是渲染訊息內的變數、輸出日誌、列印控制台偵錯和建立網頁的日常必需品。多年來,Python 顯著發展了字串格式,提供了多種選項來安全、清晰地建立動態文字表示。

在現代 Python (3.6+) 中,標準且最受歡迎的方法是使用 f 字串(格式化字串文字)進行格式化。透過在字串前面加上「f」或「F」前綴,您可以將 Python 表達式或變數直接嵌入到大括號「{}」中。這些表達式在運行時進行計算,使 f 字串比舊的格式化方法更快且更具可讀性。

較舊的 Python 程式碼庫可能會使用“.format()”方法或百分比“%”格式。雖然仍然受到支持,但通常不鼓勵他們使用新程式碼。 f 字串還支援強大的內聯格式說明符,使您能夠控制小數精確度(例如「{value:.2f}」)、對齊文字或直接在字串變數內設定日期格式。

程式碼和執行輸出

此腳本示範了使用 f 字串列印動態文字區塊、格式化浮點浮點數以及使用 .format()。

format_strings.py
在編輯器中嘗試
name = "Alice"
age = 30
pi = 3.14159

# 1. Using modern f-strings (Recommended)
greeting_f = f"Hello, my name is {name} and I am {age} years old."
print("f-string:", greeting_f)

# 2. formatting floats (2 decimal places precision)
precision_f = f"Pi rounded: {pi:.2f}"
print(precision_f)

# 3. Using the older .format() method
greeting_format = "Hello, my name is {} and I am {}.".format(name, age)
print(".format():", greeting_format)
端子輸出
f-string: Hello, my name is Alice and I am 30 years old.
Pi rounded: 3.14
.format(): Hello, my name is Alice and I am 30.

逐步實施

  • 在字串文字中加入字元 f 前綴(例如,f'Hello...')。
  • 直接在字串內的大括號 {} 內插入變數或表達式。
  • 使用 :.2f 等格式規格來處理大括號內的十進位格式。

常見問題解答

f 字串比 .format() 和 % 格式化更快嗎?

是的,f 字串在運行時作為優化的字節碼操作進行評估,這使得它們比 .format() 和 % 運算符更快。

我可以在 f 字串內運行函數或計算表達式嗎?

是的,任何有效的 Python 表達式(包括數學運算、函數呼叫和字典查找)都可以在大括號內進行計算。

相關主題

推薦的 Python 資源

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