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

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

本文详细解析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 相关产品和应用

全部下载

专题列表