Python字符串格式化:%与.format方法详解

橘子海
橘子海
发布时间:2026-10-14| 3人浏览过
原创

本文详细解析Python中两种主要的字符串格式化方式:%操作符与.format()方法。通过具体代码示例,介绍%d、%f、%s等常见占位符的用法,讲解整数补零、小数位数控制及特殊字符转义技巧,并对比.format()方法中位置参数与命名参数的使用场景,帮助开发者掌握高效的文本格式化技巧。

对于Python初学者而言,掌握字符串格式化是基础技能之一。本文旨在梳理并总结Python中常用的文本格式化方法,内容涵盖基础语法与进阶技巧,如有疏漏欢迎指正。

使用%进行字符串格式化

首先介绍使用百分号(%)进行文本格式化的方法。

在Python中,常见的格式化占位符包括以下几种:


常见的占位符有:
%d  整数
%f  浮点数
%s  字符串
%x  十六进制整数

具体使用方式如下:


>>> 'Hello, %s' % 'world'
'Hello, world'
>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
'Hi, Michael, you have $1000000.'

当不确定具体类型时,可直接使用%s作为占位符,它在语句末尾通过%()括号传入对应内容(字符串需加引号,多个参数用逗号分隔)。若仅有一个占位符,外层括号可省略。

接下来介绍一些更高级的格式化技巧。

针对整数格式化,可以指定是否补零。

参考以下代码示例:


>>> '%d-%d' % (3, 23)
'3-23'
>>> '%2d-%2d' % (3, 23)
' 3-23'
>>> '%3d-%3d' % (3, 23)
' 3- 23'
>>> '%4d-%4d' % (3, 23)
'  3- 23'
>>> '%01d-%01d' % (3, 23)
'3-23'
>>> '%02d-%02d' % (3, 23)
'03-23'
>>> '%03d-%03d' % (3, 23)
'003-023'
>>> '%04d-%04d' % (3, 23)
'0003-0023'
>>>

从代码可以看出,%d前的数字用于指定占位宽度,表示格式化后的数值所占字符数。例如%3d表示该整数占用3个字符位置,若数值不足则左侧补0(若指定了0)或空格;若数值实际长度超过指定宽度,则以实际长度为准。

此外,还可以指定小数的保留位数。


>>> '%.f' % 3.1415926'3'
>>> '%.1f' % 3.1415926'3.1'
>>> '%.2f' % 3.1415926'3.14'
>>> '%.3f' % 3.1415926'3.142'
>>>

%.后的数字表示保留小数点后的位数,例如%.1f表示保留一位小数。

如果不确定数据类型,使用%s总是有效的,它会将任何类型转换为字符串输出。


>>> 'Age: %s. Gender: %s' % (25, True)
'Age: 25. Gender: True'

若字符串中本身包含百分号,需进行转义处理,使用%%表示一个普通的%字符。


>>> 'growth rate: %d %%' % 7
'growth rate: 7 %'

尝试其他转义方法可能无效,如有其他技巧欢迎交流。

使用.format()方法

其次介绍使用.format()方法进行格式化。

具体代码演示如下:


age = 25
name = 'Swaroop'
print('{0} is {1} years old'.format(name, age))
print('Why is {0} playing with that python?'.format(name))

在.format()中,{1}等花括号内填入索引号以指定参数顺序,随后调用.format()方法传入对应参数即可。

运行上述代码的输出结果如下:


Swaroop is 25 years old
Why is Swaroop playing with that python?

实际上,使用第一种%方法也能实现相同效果。


age = 25
name = 'Swaroop'
print('%s is %s years old'%(name, age))
print('Why is %s playing with that python?'%(name))

其输出结果为:


Swaroop is 25 years old
Why is Swaroop playing with that python?

两种方法实现的结果完全一致。

总结

以上即为Python中使用%与.format进行文本格式化的完整解析,希望对读者有所帮助。欢迎继续查阅本站其他技术专题,如有不足之处,敬请留言指正。感谢大家的支持!

相关标签:

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

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 算法库。