python中是否有一个格式化函数,例如4到04但10不在010。
这个想法是10岁以下的所有数字都用0表示,然后是数字。
已经感谢了很多。
答案 0 :(得分:0)
使用%
的常规格式支持带有%0xd
的前导零,其中x
是总位数:
>>> print("%02d" % 4)
04
>>> print("%02d" % 10)
10
答案 1 :(得分:0)
您必须使用string
,因为Python不允许integers
使用前导0s
。好像我们定义一个,我们得到一个错误:
>>> a = 09
File "<stdin>", line 1
a = 09
^
SyntaxError: invalid token
所以我们实现这一目标的方法是首先转换为string
,然后使用.zfill
:
def pad(n, l):
return str(n).zfill(l)
和一些测试:
>>> pad(4, 2)
'04'
>>> pad(10, 2)
'10'
>>> pad(67, 20)
'00000000000000000067'
另一方面,如果您只想将一位数integers
填充到两位数string
,那么您可以使用ternary
表达式:
def pad2(n):
s = str(n)
return "0" + s if len(s) < 2 else s
再次进行一些测试:
>>> pad2(4)
'04'
>>> pad2(10)
'10'