与传统的字符串格式化相比,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()功能已经很容易完成。!rf-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