web-dev-qa-db-ja.com

Python str.formatを使用して先行ゼロを追加

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

78
butch
>>> "{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
187
Andrew Clark

Python docs:の フォーマットの例、ネストの例 から派生

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