【翻译】6 个 Python f-string 提示和技巧

202 阅读2分钟

翻译
6 Python f-strings tips and tricks

与传统的字符串格式化相比,Python 的 f-string 提供了一种更易读、更简洁、更不容易出错的字符串格式化方式。它们有很多有用的功能,在日常使用中肯定会很方便。让我们来看看其中的一些功能。 ​

字符串插值

到目前为止,最常用的 f-string 功能是字符串插值。你所需要做的就是用花括号({})包裹这个值或变量就可以了。

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-string 中进行数学运算。你可以把数学表达式放在花括号内,如果你加上一个等号,你就会得到表达式和它的结果。

num_val = 42

print(f'{num_val % 2 = }') # num_val % 2 = 0

可打印表示

除了普通的字符串插值之外,你可能想得到一个值的可打印表示。使用 repr() 函数已经很容易实现了。f-string 通过在花括号内附加一个 !r,提供了一个更简短的语法。

str_val = 'apples'

print(f'{str_val!r}') # 'apples'

数字格式化

此外,f-string 也可用于格式化——因此其名称中含有 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

PythonCN-sub.png