Python字符串格式化:占位符、精度与对齐方法详解

向北走
向北走
发布时间:2026-10-15| 3人浏览过
原创

本文详细介绍Python中三种字符串格式化方式:%占位符、format()方法与f-string。涵盖宽度与精度控制,以及center、ljust、rjust和zfill等字符串对齐函数的具体用法与参数说明,帮助开发者掌握高效的字符串处理技巧。

在Python开发中,字符串格式化是常见需求。目前主要存在三种常用的格式化字符串方式,分别适用于不同的场景。

第一种方式是利用百分号(%)作为占位符。


name = '张三'
age = 10

print('姓名%s,今年%d' % (name, age))

# 运行结果:姓名张三,今年10

在使用%占位符时,s和d分别代表字符串和整数的数据类型。需要注意的是,占位符的顺序必须与%符号后括号内数据变量的顺序保持一致,否则会导致错误。

第二种方式是使用内置的format()方法。


name = '张三'
age = 10

print('姓名{0},今年{1}岁'.format(name, age))

# 运行结果:姓名张三,今年10岁

在format()方法中,花括号{}作为占位符,其中的数字索引表示对应format参数中数据变量的位置。例如,0代表第一个变量,1代表第二个,依此类推。

第三种方式是使用f-string(格式化字符串字面量)。


name = '张三'
age = 10

print(f'姓名{name},今年{age}岁')

# 运行结果:姓名张三,今年10岁

使用f-string时,必须在字符串前添加字母f。字符串内部的花括号{数据变量名}会被自动替换为变量的值,这种方式语法简洁且可读性高。

除了基本的格式化,Python还支持对字符串的宽度和精度进行精细控制。

首先介绍使用%符号表示宽度和精度的写法。


# 宽度为10 运行结果:        80
print('%10d' % 80)

# 保留三位小数运行结果:3.142
print('%.3f' % 3.14159)

# 保留三位小数,宽度为10  运行结果:     3.142
print('%10.3f' % 3.1415926)

在%格式中,数字10表示输出宽度为10个字符;.3f表示保留三位小数;d表示转换前的元素数据类型。这种写法常用于数值类型的格式化输出。

需要特别注意:如果%后包含多个数据元素,上述宽度与精度设置仅对第一个数据元素生效,后续元素需单独指定格式。

接下来介绍format()方法中关于宽度和精度的表示法。


# .3表示一共三个数 运行结果:3.14
print('{0:.3}'.format(3.14159))

# .3f表示三位小数  运行结果:3.142
print('{0:.3f}'.format(3.14159))

# 宽度为10 保留三位小数 运行结果:     3.142
print('{0:10.3f}'.format(3.14159))

# 0是占位符的顺序, 可以省略 默认为0

具体示例如下所示,展示了不同格式控制符的效果。


# 运行结果:   256.354
print('{1:10.3f}'.format(3.14159, 256.354))

# 1表示占位符 即format()中参数的顺序,从0开始 1就是第二个数据元素 -> 256.354
# 10表示格式化后数据元素的宽度
# .3f表示精度保留三位小数

除了格式化内容,字符串的对齐方式也是重要操作。Python提供了多种内置方法来实现对齐。

center()方法用于居中对齐。它接收两个参数:第一个参数指定总宽度,第二个参数(可选)指定填充字符,默认为空格。如果指定的宽度小于字符串实际长度,则直接返回原字符串。


s = 'hello,python'

print(s.center(20, '*'))

# 运行结果:****hello,python****

ljust()方法用于左对齐。其参数设置与center()相同:第一个参数指定宽度,第二个参数(可选)指定填充符,默认为空格。若指定宽度小于实际宽度,返回原字符串。


s = 'hello,python'

print(s.ljust(20))
# 运行结果:hello,python        

print(s.ljust(20, '*'))
# 运行结果:hello,python********

print(s.ljust(10))
# 运行结果:hello,python

rjust()方法用于右对齐。同样接收两个参数,第一个指定宽度,第二个(可选)指定填充符,默认为空格。当指定宽度小于字符串长度时,返回原字符串。


s = 'hello,python'

print(s.rjust(20))
# 运行结果:        hello, python

print(s.rjust(20, '*'))
# 运行结果:********hello,python

print(s.rjust(10))
# 运行结果:hello,python

zfill()方法用于右对齐,并在左侧用0填充。该方法仅接收一个参数,即指定字符串的总宽度。如果指定的宽度小于或等于字符串当前长度,则直接返回原字符串。


s = 'hello,python'

print(s.zfill(20))
# 运行结果:00000000hello,python

print(s.zfill(10))
# 运行结果:hello,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 算法库。