我试图在Python 3中创建g++ $(CFLAGS) -o libvldsk_config.so $(SRCDIR)/config.cpp -Wall -shared -fPIC -I$(SRCDIR) -I$(COMMON_SRCDIR) -lconfig
,但每当我尝试将其打印出来时,它会截断该值而不使用前导零(length = 001
)。如何在打印之前不必将length = 1
转换为字符串来阻止这种情况发生?
答案 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)
我来这里的目的是找到比这个更轻巧的解决方案!