我需要将前导零添加到整数,使一个具有定义数量的数字($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;
}

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


当前回答

你很可能只需要格式化你的整数:

'%0*d' % (fill, your_int)

例如,

>>> '%0*d' % (3, 4)
'004'

其他回答

你很可能只需要格式化你的整数:

'%0*d' % (fill, your_int)

例如,

>>> '%0*d' % (3, 4)
'004'

标准的方法是使用格式化字符串修饰符。这些格式化字符串方法在大多数编程语言中都是可用的(例如,通过c中的sprintf函数),是一种方便的工具。

输出长度为5的字符串。


... 在Python 3.5及以上版本中:f-strings。

i = random.randint(0, 99999)
print(f'{i:05d}')

在这里搜索f-strings以获得更多细节。


... Python 2.6及以上版本:

print '{0:05d}'.format(i)

... Python 2.6之前:

print "%05d" % i

参见:https://docs.python.org/3/library/string.html

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

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

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

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

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

这是我的Python函数:

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