it-swarm.com.de

Python füge führende Nullen mit str.format hinzu

Können Sie einen ganzzahligen Wert mit führenden Nullen anzeigen, indem Sie str.format Funktion?

Beispieleingabe:

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

Gewünschte Ausgabe:

"001"
"010"
"100"

Ich weiß, dass sowohl zfill als auch %- basierte Formatierung (z. B. '%03d' % 5) kann dies erreichen. Ich hätte jedoch gerne eine Lösung, die str.format, um meinen Code sauber und konsistent zu halten (ich formatiere den String auch mit datetime-Attributen) und um meine Kenntnisse in der Format Specification Mini-Language zu erweitern.

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

Erläuterung:

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

Abgeleitet von Formatbeispiele, Verschachtelungsbeispiele in den Python docs:

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