Python使用str.format添加前导零

时间:2013-06-14 22:17:22

标签: python string python-2.7 string-formatting

您可以使用str.format函数显示带前导零的整数值吗?

示例输入:

"{0:some_format_specifying_width_3}".format(1)
"{0:some_format_specifying_width_3}".format(10)
"{0:some_format_specifying_width_3}".format(100)

期望的输出:

"001"
"010"
"100"

我知道基于zfill%的格式化(例如'%03d' % 5)都可以实现此目的。但是,我想要一个使用str.format的解决方案,以保持我的代码干净和一致(我还使用datetime属性格式化字符串),并扩展我对Format Specification Mini-Language的了解。< / p>

2 个答案:

答案 0 :(得分:184)

>>> "{0:0>3}".format(1)
'001'
>>> "{0:0>3}".format(10)
'010'
>>> "{0:0>3}".format(100)
'100'

说明:

{0 : 0 > 3}
 │   │ │ │
 │   │ │ └─ Width of 3
 │   │ └─ Align Right
 │   └─ Fill with '0'
 └─ Element index

答案 1 :(得分:22)

派生自Python文档中的Format examples, Nesting examples

>>> '{0:0{width}}'.format(5, width=3)
'005'