與傳統的字符串格式化相比,Python 的 f-strings 提供了一種更易讀、更簡潔且不易出錯的字符串格式化方式。它們包含許多有用的功能,這些功能肯定會在日常使用中派上用場。讓我們來看看其中的一些。
到目前為止,最常用的 f 字符串功能是字符串插值。您需要做的就是將值或變量包含在花括號 ( {}
) 中,然後就可以開始了。
str_val = 'apples'
num_val = 42
print(f'{num_val} {str_val}') # 42 apples
除了獲取變量的值之外,您還可以在值旁邊獲取其名稱。這在調試時特別有用,並且可以通過=
在花括號內的變量名後添加等號 ( ) 輕松完成。
請記住,大括號內的空格已被考慮在內,因此在等號周圍添加空格可以使結果更具可讀性。
str_val = 'apples'
num_val = 42
print(f'{str_val=}, {num_val = }') # str_val='apples', num_val = 42
在語法上與變量名稱不同,您還可以在 f 字符串中執行數學運算。您可以將數學表達式放在大括號內,如果添加等號,您將獲得表達式及其結果。
num_val = 42
print(f'{num_val % 2 = }') # num_val % 2 = 0
除了純字符串插值之外,您可能還想獲得一個值的可打印表示。使用該repr()
功能已經很容易完成。!r
f-strings 通過在花括號內附加 a 來提供更短的語法。
str_val = 'apples'
print(f'{str_val!r}') # 'apples'
此外,f-strings 也可用於格式化 - 因此名稱中的f。要為值添加格式,您可以添加冒號 ( :
),後跟格式說明符。如果您還想打印變量的名稱,這也可以與之前的等號組合使用。
數字是一個很好的候選者。例如,如果您想將數值修整為小數點後兩位,您可以使用.2f
格式說明符。
price_val = 6.12658
print(f'{price_val:.2f}') # 6.13
最後,日期也可以像數字一樣被格式化,使用格式說明符。像往常一樣,%Y
表示全年,%m
是月份,是月份%d
中的某一天。
from datetime import datetime;
date_val = datetime.utcnow()
print(f'{date_val=:%Y-%m-%d}') # date_val=2021-07-09