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

时间:2016-09-09 02:12:18

标签: python python-3.x math rounding

我试图在Python 3中创建g++ $(CFLAGS) -o libvldsk_config.so $(SRCDIR)/config.cpp -Wall -shared -fPIC -I$(SRCDIR) -I$(COMMON_SRCDIR) -lconfig ,但每当我尝试将其打印出来时,它会截断该值而不使用前导零(length = 001)。如何在打印之前不必将length = 1转换为字符串来阻止这种情况发生?

5 个答案:

答案 0 :(得分:52)

使用zfill()辅助方法左键填充任意字符串,整数或浮点数为零。

样本用法:

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.

答案 1 :(得分:11)

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

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

答案 2 :(得分:8)

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

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

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

答案 3 :(得分:4)

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

print(f"{1:03}")

答案 4 :(得分:-1)

我建议使用这种丑陋的方法,但是它可以起作用:

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

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