Python 字符串格式化详解:Format 方法与 f-string

纸上星河
纸上星河
发布时间:2026-10-15| 2人浏览过
原创

本文详细介绍 Python 中创建格式化字符串的多种方法。重点讲解 format 方法的参数替换、字段对齐、千位分隔符及精度控制,并对比已弃用的 % 运算符。同时介绍自 Python 3.6 起推荐的 f-string 特性,通过代码示例展示如何编写简洁且高可读性的格式化代码。

格式化字符串

在生成文本或文档时,通常需要将变量值嵌入到结构化的字符串中。Python 提供了多种机制来确保字符串格式化的准确性与呈现效果。本节将介绍几种常用的格式化选项。

Format 方法

在 中,通常使用 format 方法对字符串进行格式化。以下是利用该方法显示变量的基本方式:

result = template.format(*parameters)

其中,template 是一个包含占位符的字符串模板,需要传入变量进行解析。在最简单的场景下,模板中花括号内的值会被替换为 parameters 的具体变量值。为了更直观地理解,

我们可以参考以下基础示例:

>>> 'My name is {}'.format('Brainiac')
'My name is Brainiac'
>>> 'The price of ({}) is {}'.format('apple',6.28)
'The price of (apple) is 6.28'
>>> 'And all of that happens in the {1} {0}.'.format('second','first')
'And all of that happens in the first second.'
>>> 'The {fruit} should be eaten within {number} days.'.format(number=3, fruit='banana')
'The banana should be eaten within 3 days.'

对于大多数常规需求,上述简单的格式替换已足够使用。然而,在处理复杂排版、自动对齐字符串或生成美观文本时,format 方法提供了更丰富的格式控制选项。

接下来,我们编写脚本 format_string.py 来演示如何打印对齐的表格数据:

# 输入数据
data = [
    (1615.8, 1604.1),
    (183.3, 152.8),
    (1254.9, 1308.1),
    (155.4, 161.0),
]
# 表头
print(' Q1 FY21 |  Q1 FY22 |   Change')
# 以正确的格式对齐和显示数据
TEMPLATE = '{fy21:>+8,} | {fy22:>+8} | {change:>8.3}'
# 打印数据
for fy21, fy22 in data:
    row = TEMPLATE.format(fy21=fy21, fy22=fy22, change=fy22 - fy21)
    print(row)

运行上述脚本,即可看到对齐后的表格输出结果:

$ python format_string.py
 Q1 FY21 |  Q1 FY22 |   Change
+1,615.8 |  +1604.1 |    -11.7
  +183.3 |   +152.8 |    -30.5
+1,254.9 |  +1308.1 |     53.2
  +155.4 |   +161.0 |      5.6

在上述脚本中,我们使用 TEMPLATE 常量定义了一个包含三列的表格结构。每一列分别由名为 fy21、fy22 和 change 的参数定义,这使得模板能够灵活应用于格式调用。

所有格式定义均包含在花括号内部。在参数名称之后,使用冒号分隔具体的格式规范。在所有列中,我们将宽度设置为 8 个字符,以确保各列宽度一致;同时使用 > 符号将数值右对齐:

  • Fy21 字段中带有 “,” 符号,用于添加千位分隔符 —— {fy21:>+8,}
  • Fy21 和 fy22 为正值,因此使用 “+” 符号自动添加数值正负号 —— {fy21:>+8,}、{fy22:>+8}
  • Change 字段使用 “.” 符号声明显示精度 —— {change:>8.3}

其它格式化字符串方法

有时,您可能还会见到使用 % 运算符来设置 Python 格式的做法。然而,该方法不如 format 方法灵活,因此目前已不推荐使用。

此外,自 Python 3.6 开始,Python 引入了一项重要特性:使用 f-strings 进行格式化。它允许直接在字符串中嵌入变量表达式来执行格式化操作:

>>> p1 = 'first'
>>> p2 = 'second'
>>> f'And all of that happens in the {p1} {p2}.'
'And all of that happens in the first second.'

使用这种特性可以显著简化代码逻辑,并创建具有极高可读性的字符串。

到此这篇关于 Python 创建格式化字符串方法的文章就介绍到这了,更多相关Python 格式化字符串内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。