如何在数字字符串的左边加上零,使字符串具有特定的长度?


当前回答

您也可以重复“0”,将其前置到str(n)并获得最右侧的宽度切片。又快又脏的小表情。

def pad_left(n, width, pad="0"):
    return ((pad * width) + str(n))[-width:]

其他回答

除了zfill,您还可以使用常规字符串格式:

print(f'{number:05d}') # (since Python 3.6), or
print('{:05d}'.format(number)) # or
print('{0:05d}'.format(number)) # or (explicit 0th positional arg. selection)
print('{n:05d}'.format(n=number)) # or (explicit `n` keyword arg. selection)
print(format(number, '05d'))

字符串格式和f-string的文档。

对于保存为整数的邮政编码:

>>> a = 6340
>>> b = 90210
>>> print '%05d' % a
06340
>>> print '%05d' % b
90210

如果您希望填充一个整数,同时限制有效数字(使用f字符串):

a = 4.432
>> 4.432
a = f'{a:04.1f}'
>> '04.4'

f“{a:04.1f}”这转换为1个十进制/(浮点)点,将数字向左填充,直到总共4个字符。

也可以:

 h = 2
 m = 7
 s = 3
 print("%02d:%02d:%02d" % (h, m, s))

因此输出将为:“02:07:03”

我添加了如何使用f-string中字符串长度的int,因为它似乎没有被覆盖:

>>> pad_number = len("this_string")
11
>>> s = f"{1:0{pad_number}}" }
>>> s
'00000000001'