Python F-Strings:高级字符串插值

了解如何使用 F 字符串在 Python 中格式化字符串。掌握表达式求值、浮点精度格式、日期时间打印和自记录语法。

在编辑器中尝试

概述

格式化字符串是开发人员每天执行的任务。从历史上看,Python 格式化依赖于 C 风格的“%”格式化或“.format()”方法。虽然这些旧语法风格很实用,但通常会导致代码冗长、难以阅读。Python 3.6 引入了格式化字符串文字,通常称为 F 字符串。 F 字符串提供了一种简洁、可读且高度优化的语法,用于将变量和表达式直接插入到字符串文本中。

要创建 F 字符串,请在字符串文字前添加 `f` 或 `F` 前缀(例如,`f"Hello {name}"`)。放置在大括号“{...}”内的任何变量或 Python 表达式都会在运行时计算并自动转换为字符串。 F 字符串不仅仅适用于变量;它还适用于变量。您可以调用函数、执行数学计算,甚至访问大括号内的字典值,从而无需使用临时变量。

F 字符串还具有丰富的格式化语言。通过在大括号内附加冒号“:”,您可以指定格式规则。例如,“{value:.2f}”将浮点数四舍五入到小数点后两位,“{num:03d}”用前导零填充整数,“{date:%Y-%m-%d}”格式化日期时间对象。在Python 3.8+ 中,F-string 引入了调试语法 `{variable=}`,它会自动打印变量名称及其值,使调试快速而轻松。

代码和执行输出

演示浮点格式、表达式求值和自记录等号调试。

fstrings_demo.py
在编辑器中尝试
name = "Charlie"
price = 19.995
quantity = 3

# Basic interpolation and math evaluation
receipt = f"Customer: {name} | Total: ${price * quantity:.2f}"
print(receipt)

# Padding and alignment
number = 42
padded = f"ID: {number:05d}"
print(padded)

# Self-documenting debugging syntax (Python 3.8+)
value = 100
print(f"Debug output: {value=}")
端子输出
Customer: Charlie | Total: $59.99
ID: 00042
Debug output: value=100

逐步实施

  • 美化报告和仪表板中的数字输出
  • 构建动态 SQL 查询或 API 请求负载
  • 在本地测试期间打印快速调试语句

常见问题解答

F 字符串比其他字符串格式化方法更快吗?

是的,F 字符串比 % 格式化和 .format() 更快,因为它们在运行时作为优化的字节码进行评估,而不是在执行时进行解析。

如何在 F 字符串中打印文字大括号?

您可以通过将大括号加倍来转义它们,例如, f"{{Hello}}" 将打印文字文本“{Hello}”。

相关主题

推荐的 Python 资源

通过相关的交互式教程、备忘单和代码比较来扩展您的知识。