显示带前导零的数字

1412 投票
19 回答
1540424 浏览
提问于 2025-04-11 09:29

我该如何让所有小于两位数的数字前面加个零呢?

1    →  01
10   →  10
100  →  100

19 个回答

385

在Python 2.6及以上版本和3.0及以上版本中,你可以使用format()这个字符串方法来格式化字符串:

for i in (1, 10, 100):
    print('{num:02d}'.format(num=i))

或者你也可以使用内置的方法(适用于单个数字):

print(format(i, '02d'))

想了解新的格式化功能,可以查看PEP-3101的文档。

1221

你可以使用 str.zfill 这个方法:

print(str(1).zfill(2))
print(str(10).zfill(2))
print(str(100).zfill(2))

输出结果是:

01
10
100
1882

在Python 2(和Python 3)中,你可以这样做:

number = 1
print("%02d" % (number,))

基本上,% 就像 printfsprintf(可以查看 文档)。


对于Python 3.+,你也可以用 format 来实现同样的效果:

number = 1
print("{:02d}".format(number))

对于Python 3.6+,你可以使用 f-strings 来达到同样的效果:

number = 1
print(f"{number:02d}")

撰写回答