我需要将前导零添加到整数,使一个具有定义数量的数字($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;
}
有没有函数可以做到这一点?
我需要将前导零添加到整数,使一个具有定义数量的数字($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;
}
有没有函数可以做到这一点?
当前回答
内置zfill的一行程序替代。
此函数接受x并将其转换为字符串,仅在长度太短时才在开头添加0:
def zfill_alternative(x,len=4): return ( (('0'*len)+str(x))[-l:] if len(str(x))<len else str(x) )
总而言之,内置:zfill已经足够好了,但是如果有人想知道如何手动实现它,这里还有一个例子。
其他回答
内置zfill的一行程序替代。
此函数接受x并将其转换为字符串,仅在长度太短时才在开头添加0:
def zfill_alternative(x,len=4): return ( (('0'*len)+str(x))[-l:] if len(str(x))<len else str(x) )
总而言之,内置:zfill已经足够好了,但是如果有人想知道如何手动实现它,这里还有一个例子。
你可以使用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)
你很可能只需要格式化你的整数:
'%0*d' % (fill, your_int)
例如,
>>> '%0*d' % (3, 4)
'004'