返回/打印0号码python

时间:2017-12-15 14:50:34

标签: python

python中是否有一个格式化函数,例如4到04但10不在010。

这个想法是10岁以下的所有数字都用0表示,然后是数字。

已经感谢了很多。

2 个答案:

答案 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'