Pregunta Mostrar número con ceros a la izquierda


Dado:

a = 1
b = 10
c = 100

¿Cómo visualizo un cero inicial para todos los números con menos de dos dígitos?

Es decir,

01
10
100

602
2017-09-25 18:06


origen


Respuestas:


Aquí estás:

print "%02d" % (1,)

Básicamente % es como printf o sprintf.


615
2017-09-25 18:08



Puedes usar str.zfill:

print str(1).zfill(2) 
print str(10).zfill(2) 
print str(100).zfill(2) 

huellas dactilares:

01
10
100

670
2017-07-30 11:58



En Python 2.6+ y 3.0+, usaría el format() método de cadena:

for i in (1, 10, 100):
    print('{num:02d}'.format(num=i))

o usando el built-in (para un solo número):

print(format(i, '02d'))

Ver el PEP-3101 documentación para las nuevas funciones de formateo.


321
2017-09-25 18:43



print('{:02}'.format(1))
print('{:02}'.format(10))
print('{:02}'.format(100))

huellas dactilares:

01
10
100

100
2017-11-13 19:30



O esto:

print '{0:02d}'.format(1)


88
2017-11-10 10:03



x = [1, 10, 100]
for i in x:
    print '%02d' % i

resultados en:

01
10
100

Leer más información sobre el formato de cadenas usando% en la documentación.


49
2017-09-25 18:07



La manera Pythonic de hacer esto:

str(number).rjust(string_width, fill_char)

De esta manera, la cadena original se devuelve sin cambios si su longitud es mayor que string_width. Ejemplo:

a = [1, 10, 100]
for num in a:
    print str(num).rjust(2, '0')

Resultados:

01
10
100

38
2018-04-27 22:02



En Python> = 3.6, puedes hacer esto de forma sucinta con las nuevas cadenas f que se introdujeron al usar:

f'{val:02}'

que imprime la variable con el nombre val con un fill valor de 0 y un width de 2.

Para su ejemplo específico, puede hacerlo bien en un bucle:

a, b, c = 1, 10, 100
for val in {a, b, c}:
    print(f'{val:02}')

que imprime:

01 
10
100

Para obtener más información sobre f-strings, eche un vistazo a PEP 498 que los introdujo.


31
2017-11-28 14:52



U otra solución

"{:0>2}".format(number)

30
2017-11-22 21:01