无法找到Python中前导零的正确格式说明符

3 投票
4 回答
534 浏览
提问于 2025-04-18 08:47

在添加小数位时,操作非常简单:

john = 2
johnmod = format(john, '.2f')
print(johnmod)

我得到了2.00,正如我预期的那样。但是,如何在数字前面加零呢?我希望输出是0002。我在网上找到的唯一格式是用%04d,但这个方法没有成功。如果有关系的话,我是在Windows上运行Python 3.3。

4 个回答

1
format(john, '05.2f')

你可以在浮点数 f 的格式前面加上一个 0,但是你必须把后面的数字(2)和小数点也算在里面。

1

你已经快成功了:

johnmod = format(john, "04d")
2

使用 zfill 方法:

john = 2
johnmod = str(john).zfill(4)
print(johnmod) # Prints: 0002
6

有几种很Python风格的方法可以做到这一点:

首先,使用字符串格式化小语言,你尝试的方法中,前面的零表示填充,后面的4表示宽度:

>>> format(2, "04")
'0002'

另外,格式小语言的用法是:

>>> '{0:04}'.format(2)
'0002'

在冒号:后面的部分就是格式说明,0表示用零来填充,4表示宽度为四个字符。

Python 3.6中新增了格式化字符串字面量:

>>> two = 2 
>>> f'{two:04}'
'0002'

最后,str.zfill方法是专门为这个目的设计的:

>>> str(2).zfill(4)
'0002'

撰写回答