将零置于数字前面,使其成为4位数

Ben*_*ine 3 python

我有四个或更少的数字,例如812197.我喜欢把0在这个数字面前,直到它是4个位数,如000800120197.在Python中最简单的方法是什么?什么是最"Pythonic"?

我可以做一系列if语句,如下所示:

if len(number) == 1:
    number = '000' + number
...
Run Code Online (Sandbox Code Playgroud)

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

Aar*_*all 14

几种Pythonic方法可以做到这一点:

首先使用字符串格式化minilanguage,第一个零表示填充,4表示宽度:

>>> f'{5:04}'
'0005'
Run Code Online (Sandbox Code Playgroud)

另外,格式语言:

>>> five = 5
>>> f'{five:04}'
'0005'
Run Code Online (Sandbox Code Playgroud)

规范在:之后,0表示填充零,4表示宽度为4.

Python 3.6中的新功能是f字符串:

>>> minimum_width = 4
>>> filler = "0" # could also be just 0
>>> f'{five:{filler}{minimum_width}}'
'0005'
Run Code Online (Sandbox Code Playgroud)

最后,str.zfill方法是为此定制的:

>>> format(5, "04")
'0005'
>>> format(55, "04") 
'0055'
>>> format(355, "04")
'0355'
Run Code Online (Sandbox Code Playgroud)