Conversión de Int a String en Python con ceros a la izquierda

Rate this post

Para convertir un número entero i en una cadena con ceros a la izquierda de forma que esté formada por 5 caracteres, utiliza la cadena literal de formato f'{i:05d}'. El indicador d en esta expresión define que el resultado es un valor decimal. Con str(i).zfill(5) se consigue la misma conversión de cadena a un entero con ceros a la izquierda.

Desafío: Dado un número entero. Cómo convertirlo en una cadena añadiendo ceros a la izquierda para que la cadena tenga un número fijo de posiciones.

Ejemplo: Para el número entero 42, quieres rellenarlo con ceros a la izquierda hasta conseguir la siguiente cadena de 5 caracteres: '00042'.

En todos los métodos, suponemos que el entero tiene menos de 5 caracteres.

Método 1: Cadena de formato

El primer método utiliza la función de cadena literal de formato de Python 3+. También se llaman campos de reemplazo.

# Integer value to be converted
i = 42


# Method 1: Format String
s1 = f'{i:05d}'
print(s1)
# 00042

El código f'{i:05d}' coloca el número entero i en la cadena recién creada. Sin embargo, le indica al lenguaje de formato que rellene la cadena hasta 5 caracteres con "0" a la izquierda, utilizando el sistema decimal. Esta es la forma más pitónica de lograr este desafío.

Método 2: zfill()

Otra forma legible y pitónica de rellenar la cadena con 0 a la izquierda es el método string.zfill().

# Method 2: zfill()
s2 = str(i).zfill(5)
print(s2)
# 00042

El método acepta un argumento, que es el número de posiciones de la cadena resultante. Por defecto, se rellena con 0.

Python How to Pad Zeros to a String?

Método 3: Comprensión de listas

Muchos programadores de Python no acaban de entender las cadenas-f y el método zfill() que se muestran en los métodos 2 y 3. Si no tienes tiempo para aprenderlos, también puedes utilizar una forma más estándar basada en la concatenación de cadenas y la comprensión de listas.

# Method 3: List Comprehension
s3 = str(i)
n = len(s3)
s3 = '0' * (5-len(s3)) + s3
print(s3)

Primero conviertes el entero en una cadena básica. Luego, creas el prefijo de 0 que necesitas para rellenarlo hasta n=5 caracteres y concatenarlo a la representación de cadena del número entero. El operador de asterisco crea aquí una cadena de ceros de 5-len(s3).

A dónde ir desde aquí

Suficiente teoría. ¡Vamos a practicar un poco!

Los programadores cobran seis cifras y más porque pueden resolver problemas de forma más eficaz utilizando la inteligencia de las máquinas y la automatización. Para tener más éxito como programador, resuelve más problemas reales para personas reales. Así es como se pulen las habilidades que realmente necesitas en la práctica. After all, what’s the use of learning theory that nobody ever needs?

¡Desarrollarás destrezas de programación de alto valor al trabajar en proyectos prácticos de programación!

¿Quieres dejar de aprender con proyectos de juguete y centrarte en proyectos prácticos de código que te hagan ganar dinero y resuelvan problemas reales para la gente?

Si tu respuesta es SÍ, considera la posibilidad de convertirte en un desarrollador freelance de Python. It’s the best way of approaching the task of improving your Python skills—even if you are a complete beginner.

Join my free webinar “How to Build Your High-Income Skill Python” and watch how I grew my coding business online and how you can, too—from the comfort of your own home.

Join the free webinar now!

Author of Original English Post

Source: Python Int to String with Leading Zeros

Chris

Mientras trabajaba como investigador en sistemas distribuidos, el Dr. Christian Mayer encontró su amor por la enseñanza de estudiantes de informática.

Para ayudar a los estudiantes a alcanzar niveles más altos de éxito en Python, fundó el sitio web de educación de programación Finxter.com. He’s author of the popular programming book Python One-Liners (NoStarch 2020), coauthor of the Coffee Break Python series of self-published books, computer science enthusiast, freelancer, and owner of one of the top 10 largest Python blogs worldwide.Sus grandes pasiones son la escritura, la lectura, la seguridad de sistemas y su familia. Nuestra pasión es enfocarnos en las necesidades de nuestros clientes y ayudarlos a conseguir sus retos. Puede leerlo aquí.