如何在数字字符串的左边加上零,使字符串具有特定的长度?
当前回答
>>> '99'.zfill(5)
'00099'
>>> '99'.rjust(5,'0')
'00099'
如果你想要相反的:
>>> '99'.ljust(5,'0')
'99000'
其他回答
对于数字:
i = 12
print(f"{i:05d}")
输出
00012
您也可以重复“0”,将其前置到str(n)并获得最右侧的宽度切片。又快又脏的小表情。
def pad_left(n, width, pad="0"):
return ((pad * width) + str(n))[-width:]
>>> '99'.zfill(5)
'00099'
>>> '99'.rjust(5,'0')
'00099'
如果你想要相反的:
>>> '99'.ljust(5,'0')
'99000'
对于使用f-string的Python 3.6+:
>>> i = 1
>>> f"{i:0>2}" # Works for both numbers and strings.
'01'
>>> f"{i:02}" # Works only for numbers.
'01'
对于Python 2.6到Python 3.5:
>>> "{:0>2}".format("1") # Works for both numbers and strings.
'01'
>>> "{:02}".format(1) # Works only for numbers.
'01'
这些标准格式说明符是[[fill]align][minimumwid]和[0][minimupwid]。
如果您希望填充一个整数,同时限制有效数字(使用f字符串):
a = 4.432
>> 4.432
a = f'{a:04.1f}'
>> '04.4'
f“{a:04.1f}”这转换为1个十进制/(浮点)点,将数字向左填充,直到总共4个字符。