Python 在数字前加零,使其成为4位数字

Python 在数字前加零,使其成为4位数字,python,Python,我有四位或更少的数字,例如8或12或197。我想在这个数字前面加上0,直到它是4位数,例如0008或0012或0197。在Python中,最简单的方法是什么?什么才是最“Pythonic” 我可以做一系列的if语句,比如: if len(number) == 1: number = '000' + number ... 但我觉得还有一种更优雅的方式。有几种Python的方式可以做到这一点,我非常喜欢Python 3.6中的新f字符串: >>> f'{5:04}' '0

我有四位或更少的数字,例如
8
12
197
。我想在这个数字前面加上0,直到它是4位数,例如
0008
0012
0197
。在Python中,最简单的方法是什么?什么才是最“Pythonic”

我可以做一系列的if语句,比如:

if len(number) == 1:
    number = '000' + number
...

但我觉得还有一种更优雅的方式。

有几种Python的方式可以做到这一点,我非常喜欢Python 3.6中的新f字符串:

>>> f'{5:04}'
'0005'
这将使用字符串格式迷你语言:

>>> five = 5
>>> f'{five:04}'
'0005'
>>> '{0:04}'.format(5)
'0005'
前零表示填充,4表示宽度:

>>> minimum_width = 4
>>> filler = "0" # could also be just 0
>>> f'{five:{filler}{minimum_width}}'
'0005'
接下来,使用内置格式函数:

>>> format(5, "04")
'0005'
>>> format(55, "04") 
'0055'
>>> format(355, "04")
'0355'
此外,使用minilanguage的字符串格式方法:

>>> five = 5
>>> f'{five:04}'
'0005'
>>> '{0:04}'.format(5)
'0005'
同样,规范位于:,0表示用零填充,4表示宽度为4

最后,str.zfill方法是为此定制的,这可能是最快的方法:

>>> str(5).zfill(4)
'0005'