當前位置: 妍妍網 > 碼農

f-string,一個非常強大的Python字串格式化工具

2024-06-22碼農

源:DeepHub IMBA

Python 3.6中引入的f-string是Python中最常用的特征之一,它可以讓我們編寫更幹凈、更高效和更易於維護的程式碼,我們今天就由淺入深來詳細介紹使用它的一些技巧。

對齊文本

在格式化輸出時,對齊對可讀性至關重要。無論是生成報告、記錄數據還是建立使用者介面,對齊的文本看起來都更幹凈,更易於閱讀。

variable = "some text" print(f"|{variable:>30}|") print(f"|{variable:<30}|") print(f"|{variable:^30}|")

也可以用選擇的其他的字元填充空格,例如:

 variable = "some text" print(f"|{variable:*^30}|")

這些選項提供了一種通用的方式來格式化文本輸出,使其更具可讀性和視覺吸重力。

日期和時間格式

處理日期和時間是編程中的一項常見任務。Python的datetime模組為此提供了一組豐富的工具,f-strings可以更容易按照自己的喜好格式化日期和時間。

from datetime import datetime now = datetime.now()print(f"Date: {now:%d-%m-%Y}")print(f"Time: {now:%H:%M:%S}")print(f"Locale's Date and Time: {now:%c}")print(f"Time in AM/PM format: {now:%I:%M %p}")


自訂日期和時間資訊的輸出,可以輕松地以人類可讀的格式顯示時間戳。

帶分隔符的數位

在程式碼中處理數位可能會很麻煩,尤其是在可讀性很重要的時候。f-string中直接使用幾千分隔符來格式化大的數位:

n = 1000000000 print(f"{n:_}") # Outputs: 1_000_000_000 print(f"{n:,}") # Outputs: 1,000,000,000

在f-string中使用底線(_)或逗號(,)作為分隔符可以使數位更具可讀性。這種做法在處理財務數據、大型數據集或任何解析度至關重要的應用程式時特別有用。

控制十進制精度

在處理浮點數時,小數位數的表示通常是至關重要的。f字串提供了一種簡單的方法來實作這種精度。

 num = 13.234 print(f"{num:.2f}"# Result: 13.23

將數位四舍五入以僅顯示小數點後兩位。也可以完全刪除小數點後十位:

print(f"{num:.0f}") # Result: 13

去掉小數點後的數位,就得到一個整數。還可以使用%符號打印百分比。

 value = 0.75321 print(f"{value:.2%}"# Output: 75.32%

頁可以將它與千位分隔符配對:

 num = 13.234 print(f"{num:,.2%}"# Result: 1,323.40%

這種特性的組合在科學研究、金融和任何需要精確控制數位格式的情況下特別有用。

快速偵錯行內運算式

f-strings可以使偵錯過程更容易。不需要編寫多行來顯示變量值,可以直接在f-string中包含運算式進行快速檢查,並且可以利用花括弧內的等號(=)來同時顯示運算式及其結果。

from data classes import data class @data class classPerson: name: str age: int person1 = Person(name="Alice", age=30) person2 = Person(name="Bob", age=25) print(f"{person1.name = }, age {person1.age = }, {person2.name = }, age {person2.age = }")

f-string中的條件運算式

也可以直接在f - string中使用條件運算式。這可以方便地建立更動態的輸出,而不必編寫單獨的條件語句。

 score = 85 print(f"Your score is {score}, which is {'passing'if score >= 50else'failing'}.")

這一行程式碼檢查score的值,並在字串中包含適當的文本。這是在字串格式中添加條件邏輯的一種簡明方法。

總結

f-string是一個非常強大的字串格式化技術,可以優雅地表達Python字串。它可以透過一個迷你語法滿足我們基本上的所有要求,甚至執行字串的運算式。這對於我們日常的開發是非常有幫助的。

官方文件:

https://docs.python.org/3/reference/lexical_analysis.html#f-strings