Python 中如何在字符串前面补零?

Python 字符串补零用 zfill() 方法:'123'.zfill(5) 得到 '00123'。也可用 f-string 格式化 f"{n:05d}"。本文对比各方法。

最佳实践
Python 中如何在字符串前面补零?封面

最简单:str.zfill(宽度)——'123'.zfill(5) 得到 '00123'。对数字也可以直接用 f-string:f"{42:05d}" 得到 '00042'

方法一:zfill()(字符串方法)

s = '123'
padded = s.zfill(5)
print(padded)  # 00123

在左侧补零直到达到指定长度。已经够长则不截断:

'123456'.zfill(3)  # '123456'(不变)

方法二:f-string 格式化(数字推荐)

n = 42
print(f"{n:05d}")   # 00042
print(f"{n:08d}")   # 00000042

0 表示用零填充,5 是总宽度,d 表示整数。

方法三:str.rjust()

'123'.rjust(5, '0')   # 00123

rjust 可以用任意字符填充,zfill 专门补零。两者效果相同,但 zfill 对负号处理更好:

'-123'.zfill(6)     # '-00123'(负号在前,零补在中间)
'-123'.rjust(6, '0') # '00-123'(零补在最左边,语义不对)

常见问题(FAQ)

Q:数字补零后还是数字吗?
A:不是。补零后是字符串。如果需要数字比较,先补零再转回整数(但补零后转回整数会丢失前导零)。

Q:批量生成序号怎么用?
A:for i in range(1, 11): print(f"item_{i:03d}") 生成 item_001item_010

Q:右侧补零呢?
A:用 ljust'123'.ljust(5, '0') 得到 '12300'

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台