如何在所有小于两位数的数字前显示前导零?
1 → 01
10 → 10
100 → 100
str.zfill
:print(str(1).zfill(2))
print(str(10).zfill(2))
print(str(100).zfill(2))
输出:
01
10
100
"{1:02d}"
无法使用变量代替2
(例如如果您正在创建一个动态函数)。 - Joshua Varghese"{0:0{1}}"
。将任意数量的零作为第二个参数传递即可。 - Jimprint('{:02}'.format(1))
print('{:02}'.format(10))
print('{:02}'.format(100))
输出:
01
10
100
一零:{0:02}, 两个零: {0:03}, 九个零: {0:010}'.format(6)
- srodriguexprint '{:02}'.format(1)
。 - Blairg23或者这样写:
print '{0:02d}'.format(1)
这样做的Pythonic方式:
str(number).rjust(string_width, fill_char)
如果原始字符串的长度大于string_width,则返回原始字符串而不作任何更改。例如:
a = [1, 10, 100]
for num in a:
print str(num).rjust(2, '0')
结果:
01
10
100
或者另一个解决方案。
"{:0>2}".format(number)
"{0:0>2}".format(number)
,如果有人想要nLeadingZeros,他们应该注意也可以这样做:"{0:0>{1}}".format(number, nLeadingZeros + 1)
。 - Jonathan Allan它已经内置在Python中,使用字符串格式化。
f'{number:02d}'
x = "%02d.txt" % i
报错 TypeError (cannot concatenate 'str' and 'int' objects),但是x = "%02d.txt" % (i,)
不会报错。有趣。我想知道这个在哪里有文档记录。 - theta