Dado:
a = 1
b = 10
c = 100
¿Cómo visualizo un cero inicial para todos los números con menos de dos dígitos?
Esta es la salida que espero:
01
10
100
python
integer
string-formatting
ashchristopher
fuente
fuente

x = "%02d.txt" % iplantea TypeError (no puede concatenar objetos 'str' e 'int'), perox = "%02d.txt" % (i,)no lo hace. Interesante. Me pregunto dónde está documentado%formateador de cuerdas.Puedes usar
str.zfill:huellas dactilares:
fuente
"{1:02d}"que no puede tener variables en lugar de2(como si está creando una función dinámica).En Python 2.6+ y 3.0+, usaría el
format()método de cadena:o usando el incorporado (para un solo número):
Consulte la documentación de PEP-3101 para conocer las nuevas funciones de formateo.
fuente
huellas dactilares:
fuente
One zero:{0:02}, two zeros: {0:03}, ninezeros: {0:010}'.format(6)print '{:02}'.format(1)O esto:
print '{0:02d}'.format(1)fuente
En Python> = 3.6 , puede hacer esto sucintamente con las nuevas cadenas f que se introdujeron utilizando:
que imprime la variable con nombre
valcon unfillvalor de0y awidthde2.Para su ejemplo específico, puede hacerlo muy bien en un bucle:
que imprime:
Para obtener más información sobre las cadenas f, eche un vistazo a PEP 498 donde se introdujeron.
fuente
resultados en:
Lea más información sobre el formato de cadenas usando% en la documentación.
fuente
La forma pitónica de hacer esto:
De esta forma, la cadena original se devuelve sin cambios si su longitud es mayor que string_width. Ejemplo:
Resultados:
fuente
U otra solución.
fuente
"{0:0>2}".format(number), si alguien quiere nLeadingZeros voluntad que deben tener en cuenta que también puede hacer:"{0:0>{1}}".format(number, nLeadingZeros + 1)Utilice una cadena de formato: http://docs.python.org/lib/typesseq-strings.html
Por ejemplo:
fuente
Así es como lo hago:
Básicamente, zfill toma el número de ceros iniciales que desea agregar, por lo que es fácil tomar el número más grande, convertirlo en una cadena y obtener la longitud, de esta manera:
fuente
fuente
Puedes hacer esto con cadenas f .
Esto imprimirá una longitud constante de 8 y rellenará el resto con el interlineado
0.fuente
Utilizar:
O con el
mathmódulo:fuente
El 5 es el número de dígitos totales.
Usé este enlace: http://www.datasciencemadesimple.com/add-leading-preceding-zeros-python/
fuente
Si se trata de números que tienen uno o dos dígitos:
'0'+str(number)[-2:]o'0{0}'.format(number)[-2:]fuente