翻译
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