如何在Python 3中使用前导零填充字符串

这个问题已经在这里有了答案:

  • 将零填充到字符串的最佳方法14个答案

我正在尝试在Python 3中制作length = 001,但是每当我尝试打印出来时,它都会截断没有前导零的值(length = 1)。 在打印出来之前不必将length转换为字符串,如何停止这种情况?

Gabby Freeland asked 2020-02-29T15:30:31Z
5个解决方案
74 votes

利用zfill()辅助方法将任何字符串,整数或带零的浮点数左键填充; 对于Python 2.x和Python 3.x均有效。

用法示例:

print str(1).zfill(3);
# Expected output: 001

描述:

当将zfill()应用于一个值时,如果初始字符串值的长度小于所应用的宽度值的长度,则返回用零填充的值;否则,初始字符串值保持原样。

句法:

str(string).zfill(width)
# Where string represents a string, an integer or a float, and
# width, the desired length to left-pad.
nyedidikeke answered 2020-02-29T15:31:03Z
31 votes

从python 3.6开始,您可以使用fstring:

>>> length = 1
>>> print(f'length = {length:03}')
length = 001
PhE answered 2020-02-29T15:31:23Z
9 votes

Python整数没有固有长度或有效数字位数。 如果希望它们以特定方式打印,则需要将它们转换为字符串。 您可以通过多种方法指定填充字符和最小长度等内容。

要将零填充到最少三个字符,请尝试:

length = 1
print(format(length, '03'))
Blckknght answered 2020-02-29T15:31:48Z
3 votes

有很多方法可以实现这一点,但是我认为Python 3.6+中最简单的方法是:

print(f"{1:03}")
Anatol answered 2020-02-29T15:32:08Z
0 votes

我建议这种丑陋的方法,但它可以工作:

length=1
lenghtafterpadding=3
newlength='0'*(lengthafterpading-len(str(length))+str(length)

我来到这里是为了找到比这个更轻巧的解决方案!

wydadman answered 2020-02-29T15:32:32Z
translate from https://stackoverflow.com:/questions/39402795/how-to-pad-a-string-with-leading-zeros-in-python-3