Answers:
在Python 2(和Python 3)中,您可以执行以下操作:
print "%02d" % (1,)
基本上%就像printf
或sprintf
(请参阅docs)。
对于Python 3. +,也可以通过以下方式实现相同的行为format
:
print("{:02d}".format(1))
对于Python 3.6+,可以使用f-strings实现相同的行为:
print(f"{1:02d}")
x = "%02d.txt" % i
引发TypeError(无法连接'str'和'int'对象),但x = "%02d.txt" % (i,)
不这样做。有趣。我想知道记录在哪里
%
字符串格式化程序时更加安全。
在Python 2.6+和3.0+中,您将使用format()
字符串方法:
for i in (1, 10, 100):
print('{num:02d}'.format(num=i))
或使用内置的(对于单个数字):
print(format(i, '02d'))
有关新的格式化功能,请参阅PEP-3101文档。
print('{:02}'.format(1))
print('{:02}'.format(10))
print('{:02}'.format(100))
印刷品:
01
10
100
One zero:{0:02}, two zeros: {0:03}, ninezeros: {0:010}'.format(6)
print '{:02}'.format(1)
或其他解决方案。
"{:0>2}".format(number)
"{0:0>2}".format(number)
,如果有人想要nLeadingZeros,他们应该注意他们也可以这样做:"{0:0>{1}}".format(number, nLeadingZeros + 1)
使用格式字符串-http://docs.python.org/lib/typesseq-strings.html
例如:
python -c 'print "%(num)02d" % {"num":5}'
这是我的方法:
str(1).zfill(len(str(total)))
基本上,zfill接受要添加的前导零的数量,因此很容易将最大的数字转换为字符串并获取长度,如下所示:
Python 3.6.5(默认,2018年5月11日,04:00:52) Linux上的[GCC 8.1.0] 键入“帮助”,“版权”,“信用”或“许可证”以获取更多信息。 >>>总计= 100 >>>打印(str(1).zfill(len(str(total)))) 001 >>>总计= 1000 >>>打印(str(1).zfill(len(str(total)))) 0001 >>>总计= 10000 >>>打印(str(1).zfill(len(str(total)))) 00001 >>>
您可以使用f字符串执行此操作。
import numpy as np
print(f'{np.random.choice([1, 124, 13566]):0>8}')
这将打印恒定长度的8,并用领先的填充0
。
00000001
00000124
00013566
df['Col1']=df['Col1'].apply(lambda x: '{0:0>5}'.format(x))
5是总位数。
我使用了以下链接:http : //www.datasciencemadesimple.com/add-leading-preceding-zeros-python/