Display number with leading zeros
鉴于:
1 2 3 | a = 1 b = 10 c = 100 |
对于所有小于两位数的数字,如何显示前导零?
也就是说,
1 2 3 | 01 10 100 |
您可以使用
1 2 3 | print str(1).zfill(2) print str(10).zfill(2) print str(100).zfill(2) |
印刷品:
1 2 3 | 01 10 100 |
在Python2中,您可以执行以下操作:
1 | print"%02d" % (1,) |
基本上,%类似于
对于python 3.+可以通过以下方式实现相同的行为:
1 | print("{:02d}".format(1)) |
对于python 3.6+,使用f字符串可以实现相同的行为:
1 | print(f"{1:02d}") |
在python 2.6+和3.0+中,您将使用
1 2 | for i in (1, 10, 100): print('{num:02d}'.format(num=i)) |
或者使用内置的(对于单个数字):
1 | print(format(i, '02d')) |
有关新的格式化功能,请参阅PEP-3101文档。
1 2 3 | print('{:02}'.format(1)) print('{:02}'.format(10)) print('{:02}'.format(100)) |
印刷品:
1 2 3 | 01 10 100 |
或者:
在python>=3.6中,您可以使用通过以下方法引入的新f字符串来简洁地完成此操作:
1 | f'{val:02}' |
打印名为
对于您的特定示例,您可以在循环中很好地做到这一点:
1 2 3 | a, b, c = 1, 10, 100 for val in [a, b, c]: print(f'{val:02}') |
哪些印刷品:
1 2 3 | 01 10 100 |
有关F字符串的更多信息,请参阅介绍它们的PEP498。
1 2 3 | x = [1, 10, 100] for i in x: print '%02d' % i |
结果:
1 2 3 | 01 10 100 |
阅读文档中有关使用%设置字符串格式的详细信息。
做这件事的方法:
1 | str(number).rjust(string_width, fill_char) |
这样,如果原始字符串的长度大于字符串宽度,则返回的字符串不变。例子:
1 2 3 | a = [1, 10, 100] for num in a: print str(num).rjust(2, '0') |
结果:
1 2 3 | 01 10 100 |
或其他解决方案。
1 | "{:0>2}".format(number) |
使用格式字符串-http://docs.python.org/lib/typesseq-strings.html
例如:
1 | python -c 'print"%(num)02d" % {"num":5}' |
1 2 3 4 | width = 5 num = 3 formatted = (width - len(str(num))) *"0" + str(num) print formatted |
用途:
1 | '00'[len(str(i)):] + str(i) |
或使用
1 2 | import math '00'[math.ceil(math.log(i, 10)):] + str(i) |
我就是这样做的:
1 | str(1).zfill(len(str(total))) |
基本上,zfill取你想要添加的前导零的个数,所以很容易取最大的个数,把它变成一个字符串并得到长度,如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 | Python 3.6.5 (default, May 11 2018, 04:00:52) [GCC 8.1.0] on linux Type"help","copyright","credits" or"license" for more information. >>> total = 100 >>> print(str(1).zfill(len(str(total)))) 001 >>> total = 1000 >>> print(str(1).zfill(len(str(total)))) 0001 >>> total = 10000 >>> print(str(1).zfill(len(str(total)))) 00001 >>> |
!/usr/bin/env python3号
版权所有2009-2017 BHG http://bw.org/
1 2 3 4 5 6 | x = 5 while (x <= 15): a = str("{:04}".format(x)) print(a) x = x + 1; |
与图像相同的代码
根据你的建议,我让我的工作发挥作用。谢谢您。
1 2 3 4 5 6 7 8 | def number2binlist(number, leading = 8): #Convert Binary to 0/1 list array with leading zeros, default 8 bin2dec = int(str(bin(number))[2:]) theformat ="{:0"+str(leading)+"d}" dec2str = list(theformat.format(bin2dec)) output = [int(z) for z in dec2str] output.reverse() return output |
1 2 3 | s=1 s="%02d"%s print(s) |
结果是01
如果处理的是一个或两个数字: