Python: alinear y rellenar datos con print

Hoy veremos cómo alinear y rellenar el espacio al imprimir datos en Python usando la función print. Por ejemplo, alinear un número en una tabla y rellenar el espacio sobrante sin importar la longitud del número.

También vamos a ver cómo alinear una cadena a la izquierda o derecha sin importar el tipo de dato.

Finalmente te mostraré un ejemplo de una tabla alineada en donde no va a importar la longitud de los datos impresos.

La función format

Para alinear texto en Python vamos a usar la función format que tienen todas las cadenas. Esta función permite hacer bastantes cosas, entre ellas alinear a la izquierda o derecha dejando determinada cantidad de espacios en blanco.

La sintaxis es:

cadena.format(valores)

Cada valor que se va a formatear está encerrado entre llaves {}. Dentro de las llaves no va el valor, sino el formato, ya que el valor se pasa como argumento al invocar a format. Entenderás mejor en los ejemplos.

Veamos ahora cómo usarla para alinear datos.

Alinear a la izquierda

Para formatear y alinear una cadena a la izquierda usamos :<cantidad_espacios. Por ejemplo, lo siguiente va a asegurarse de que el texto impreso mida al menos 20 caracteres (lo sobrante lo va a reemplazar por espacios)

nombre = "Luis"
print("|{:<20}|".format(nombre))
# Salida:
# |Luis                |

Alineación derecha con Python

Para el caso contrario (usar print para alinear a la derecha) usamos casi el mismo formato pero ahora usamos el signo de mayor qué: >

El ejemplo queda así:

nombre = "Luis"
print("|{:>20}|".format(nombre))
# |                Luis|

Ejemplo con tabla

Para terminar te voy a mostrar un ejemplo. En este caso vamos a imprimir cadenas y flotantes. Las cadenas van a ir alineadas a la izquierda, y los flotantes a la derecha. El ejemplo queda así:

"""
    https://parzibyte.me/blog
"""

datos = [
    {
        "nombre": "Luis C.B.",
        "promedio": 9.5,
    },
    {
        "nombre": "John G.",
        "promedio": 8.96,
    },
    {
        "nombre": "Leon Scott",
        "promedio": 9.22,
    },
]
print("+--------------------+----------+")
print("|Nombre              |Promedio  |")
print("+--------------------+----------+")
for dato in datos:
    nombre = dato["nombre"]
    promedio = dato["promedio"]
    cadena = "|{:<20}|{:>10.2f}|".format(nombre, promedio)
    print(cadena)
    print("+--------------------+----------+")

Fíjate en que ahora estoy separando los conceptos y primero formateo la cadena para imprimirla más tarde. También quiero que notes que agregué .2f después de >10 para indicar que el decimal debe mostrarse con dos decimales.

La salida es:

Imprimir tabla con Python – Alineación con print y format

A partir del ejemplo puedes ver cómo es que se pueden alinear los datos en Python, combinarlos, concatenarlos, etcétera.

Te dejo con más tutoriales de Python.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *