Python 3固定宽度数字格式化

27
4个回答

66

在宽度前加上0

>>> '{0:03}'.format(1)
'001'

另外,在最新的 Python 版本中(不确定是哪个,但至少在 2.7 和 3.1 中),您不需要使用占位符:

>>> '{:03}'.format(1)
'001'

这种方法如何适用于整列,在该列中我有1和211,例如,我希望输出001和211。谢谢。 - PV8

18

更好:

number=12
print(f'number is equal to {number:03d}')

13
有一个内置的字符串方法.zfill,用于填充 0:
>>> str(42).zfill(5)
'00042'
>>> str(42).zfill(2)
'42'

这在我的应用程序中运行良好,我需要二进制数字:bin(42)[2:].zfill(7)会得到 '0101010'。我不知道如何使其他答案起作用。 - saulspatz

2
在Python 3中,首选的方法如下:
  • 使用f-string(格式化字符串字面量)
  • 在冒号后面指定宽度(数字),并在前面加上零以表示如果数字不够大,则要用零而不是空格。
例如:
a = 20
print(f"number is {a :03}")

请注意,冒号后面没有空格,否则前导零无效。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接