Pouvez-vous afficher une valeur entière avec des zéros en tête en utilisant la fonction str.format
?
Exemple de saisie:
"{0:some_format_specifying_width_3}".format(1)
"{0:some_format_specifying_width_3}".format(10)
"{0:some_format_specifying_width_3}".format(100)
Sortie souhaitée:
"001"
"010"
"100"
Je sais que le formatage basé sur zfill
et %
(Par exemple, '%03d' % 5
) Peut accomplir cela. Cependant, je voudrais une solution qui utilise str.format
Afin de garder mon code propre et cohérent (je formate également la chaîne avec des attributs datetime) et également de développer mes connaissances de spécification de format Mini-langue .
>>> "{0:0>3}".format(1)
'001'
>>> "{0:0>3}".format(10)
'010'
>>> "{0:0>3}".format(100)
'100'
Explication:
{0 : 0 > 3}
│ │ │ │
│ │ │ └─ Width of 3
│ │ └─ Align Right
│ └─ Fill with '0'
└─ Element index
Dérivé de exemples de format, exemples d'imbrication dans le Python docs:
>>> '{0:0{width}}'.format(5, width=3)
'005'