Pregunta Python agrega ceros a la izquierda usando str.format [duplicate]


Esta pregunta ya tiene una respuesta aquí:

¿Puedes mostrar un valor entero con ceros a la izquierda usando el str.format ¿función?

Ejemplo de entrada:

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

Salida deseada: 

"001"
"010"
"100"

Sé que ambos zfill y %formateo basado en bases de datos (p. '%03d' % 5) puede lograr esto. Sin embargo, me gustaría una solución que use str.format para mantener mi código limpio y consistente (también estoy formateando la cadena con atributos de fecha y hora) y también para ampliar mi conocimiento de la Especificación de formato Mini-Idioma.


74
2018-06-14 22:17


origen


Respuestas:


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

Explicación:

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

170
2018-06-14 22:26



Derivado de Ejemplos de formato, ejemplos de anidamiento en los documentos de Python:

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

21
2018-06-14 22:35