我需要将前导零添加到整数,使一个具有定义数量的数字($cnt)的字符串。 把这个简单的函数从PHP翻译成Python的最好方法是什么:

function add_nulls($int, $cnt=2) {
    $int = intval($int);
    for($i=0; $i<($cnt-strlen($int)); $i++)
        $nulls .= '0';
    return $nulls.$int;
}

有没有函数可以做到这一点?


当前回答

你至少有两个选择:

str.zfill: lambda n, cnt=2: str(n).zfill(cnt) %格式:lambda n, cnt=2: "%0*d" % (cnt, n)

如果在Python >2.5上,请参阅clorz回答中的第三个选项。

其他回答

Python 2.6允许这样做:

add_nulls = lambda number, zero_count : "{0:0{1}d}".format(number, zero_count)

>>>add_nulls(2,3)
'002'

Python 3.6 f-strings允许我们轻松添加前导零:

number = 5
print(f' now we have leading zeros in {number:02d}')

看看这篇关于这个功能的好文章。

一个简单的转换将是(同样使用函数):

def add_nulls2(int, cnt):
    nulls = str(int)
    for i in range(cnt - len(str(int))):
        nulls = '0' + nulls
    return nulls

这是我的Python函数:

def add_nulls(num, cnt=2):
  cnt = cnt - len(str(num))
  nulls = '0' * cnt
  return '%s%s' % (nulls, num)

你可以使用zfill()方法填充一个零字符串:

In [3]: str(1).zfill(2)
Out[3]: '01'