How to pad a string with leading zeros in Python 3

我试图在 Python3中创建 length = 001,但是每当我试图打印它时,它都会截断没有前导零(length = 1)的值。在打印出来之前,如何在不需要将 length强制转换为字符串的情况下阻止这种情况发生?

184291 次浏览

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

要使用零填充至少三个字符,请尝试:

length = 1
print(format(length, '03'))

使用 zfill()助手方法将任何字符串、整数或浮点数用零填充左边; 它对于 Python 2.xPython 3. x都是有效的。

It important to note that Python 2 is 不再支持.

使用方法:

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

描述:

When applied to a value, zfill() returns a value left-padded with zeros when the length of the initial 绳子 value less than that of the applied 宽度 value, otherwise, the initial 绳子 value as is.

句法:

str(string).zfill(width)
# Where string represents a string, an integer or a float, and
# width, the desired length to left-pad.

由于 python 3.6,您可以使用 fstring:

>>> length = 1
>>> print(f'length = {length:03}')
length = 001

There are many ways to achieve this but the easiest way in Python 3.6+, in my opinion, is this:

print(f"{1:03}")

我建议采用这种丑陋的方法,但它确实管用:

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

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