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
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
Aquí estás:
print "%02d" % (1,)
Básicamente % es como printf
o sprintf
.
Puedes usar str.zfill
:
print str(1).zfill(2)
print str(10).zfill(2)
print str(100).zfill(2)
huellas dactilares:
01
10
100
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.
print('{:02}'.format(1))
print('{:02}'.format(10))
print('{:02}'.format(100))
huellas dactilares:
01
10
100
O esto:
print '{0:02d}'.format(1)
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.
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
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.
U otra solución
"{:0>2}".format(number)