无法找到Python中前导零的正确格式说明符
在添加小数位时,操作非常简单:
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'