En esta entrada vamos a ver la función format en Python 3 (exclusiva a partir de esta versión), la cual nos será muy útil para ordenar los datos de salida de nuestras aplicaciones. Suponiendo que quieres dar como salida de tu programa una tabla con los resultados ordenados, con esta función se te pondrá muy fácil.
📓 Abre tu cuaderno de Jupyter Notebook que creaste en la lección anterior (10-Listas por comprensión) y vamos a crear un nuevo cuaderno para esta lección. Llámalo 11-Format en Python.
📚 Recursos externos para profundizar: Consulta la documentación oficial de Python sobre formato de cadenas y la guía de formato de salida en Python.
Pero venga, les compensaré con buen código.
🖋️ Sintaxis de format en Python 3
Comenzando por lo más básico, veamos un ejemplo sencillo:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# format en Python 3
Nombre = input(str("Ingresa tu nombre: "))
print("Tu nombre es {0}".format(Nombre)) # Formateamos la salida
En este código de ejemplo solicitamos la entrada mediante input() al usuario y luego brindamos una salida utilizando format en Python para ordenar el contenido de la variable Nombre dentro de una cadena de texto.
A partir de la versión 3 de Python, recordamos que debemos utilizar paréntesis en todas las funciones, por lo que esta no será la excepción. La función format se encuentra dentro de los paréntesis de la función print() seguida de un punto.
Veamos otro ejemplo para explicar mejor la sintaxis:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# format en Python 3
Nombre = input(str("Ingresa tu nombre: "))
Edad = int(input("Bien, ahora ingresa tu edad: "))
NombreMascota = input(str("Ingresa el nombre de tu mascota: "))
print("Tu nombre es {0} y tienes {1} años. Tu mascota se llama {2}".format(Nombre, Edad, NombreMascota))
Como puedes apreciar, colocamos las llaves donde se mostrará el contenido de la variable y dentro de ellas un número que corresponde con el orden de la variable dentro de la función format.
- La variable nombre obtiene el identificador {0}
- La variable edad obtiene el identificador {1}
- La variable NombreMascota obtiene el identificador {2}
Estos números de identificación nos permiten repetir el uso de la variable indicando cuál de ellas. También podemos colocar las llaves sin identificador, pero siempre se corresponderán con el orden en el que presentemos las variables dentro de .format().
Un clásico ejemplo del uso y practicidad de los identificadores:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# format en Python 3
a = 'abra'
b = 'cad'
print('{0}{1}{0}'.format(a, b))
abracadabra
No es magia, es format en Python.
‘a’ toma el valor de {0} y ‘b’ el valor de {1}, por lo que podemos repetirlos.
➕ Otras funcionalidades de los identificadores { }
Los identificadores también nos van a permitir ordenar la salida en la función format en Python. Por ejemplo, para alinear a la derecha, izquierda o centrado, entre otras características. Veamos cómo hacerlo:
En este caso vamos a imprimir «abracadabra» utilizando una alineación:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# format en Python 3
a = 'abra'
b = 'cad'
print('{0:<5}{1:^5}{0:>5}'.format(a, b))
abra cad abra
De esta forma alineamos el primer ‘abra’ a la izquierda utilizando el símbolo ‘<‘. El ‘cad’ en el centro utilizando el símbolo ‘^’ y a la derecha el otro ‘abra’ utilizando el símbolo ‘>’ seguido de los dos puntos. El número 5 indica la cantidad de caracteres o espacios en cada elemento para su alineación. Es decir, a mayor este número, más espaciados se alinearán.
📋 Creando y alineando tablas con formato
Estoy seguro que comprender format en Python te va a agradar, ya que hará tus salidas mucho más bonitas. Vamos a crear una tabla con determinada información usando format en Python y la vamos a imprimir usando el intérprete.
Tabla con números del 1 al 10 mostrando el resultado de la elevación al cuadrado y al cubo:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# format en Python 3
for x in range(1, 11):
print('{3}{0:2d}{3} {3}{1:3d}{3} {3}{2:4d}{3}'.format(x, x * x, x * x * x, '|'))
| 1 | 1 | 1 | | 2 | 4 | 8 | | 3 | 9 | 27 | | 4 | 16 | 64 | | 5 | 25 | 125 | | 6 | 36 | 216 | | 7 | 49 | 343 | | 8 | 64 | 512 | | 9 | 81 | 729 | |10 | 100 | 1000 |
Si te fijas, el bucle for está creando un rango del 1 al 10 para ‘x’ y dentro de los paréntesis de format() hacemos el cálculo. Primero presentamos la ‘x’ sola, lo que nos genera la primera columna con los números del 1 al 10. La segunda ‘x * x’ genera la segunda columna con los resultados de estos números elevados al cuadrado, y la tercera (x * x * x) nos genera la columna del cubo.
Analizando el código:
'{3}{0:2d}{3} {3}{1:3d}{3} {3}{2:4d}{3}'.format(x, x * x, x * x * x, '|')
- El indicador {3} corresponde al carácter ‘|’ que forma las columnas.
- Los números 0, 1, 2 corresponden al orden de los elementos dentro de
format(): (‘x’ para 0), (‘x * x’ para 1), (‘x * x * x’ para 2). - Finalmente, luego de los dos puntos, encontramos 2d, 3d, 4d que corresponden a la cantidad de caracteres para indicar la alineación de los elementos según la cantidad de cifras de los números. La letra ‘d’ se utiliza para indicar que son datos enteros; en el caso de datos de texto (string) se utiliza ‘s’.
➡️ Ordenando listas dentro de tablas usando .format y .join
Si tuviésemos varias listas con diferentes datos o diccionarios y quisiéramos ordenarlos dentro de una tabla, resultará muy fácil utilizando la función .join() y .format().
Join nos permite convertir listas/tuplas en cadenas de texto y viceversa. Y esto nos brinda una ventaja: las listas son mutables, las cadenas no. Por lo que si convertimos una cadena en lista podremos modificarla y luego volver a convertirla en cadena.

Podemos imprimir listas como cadenas dentro de una tabla, uniendolas utilizando .join() y dándoles un formato con .format(). A la vez que podemos modificar las listas y volverlas a imprimir.
Veamos un ejemplo: tenemos una lista con los alumnos y sus notas de todo el año. Queremos imprimir estos datos en una tabla para que se nos vea más presentable:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# format en Python 3
ListasAlumnos = [
['Juan', 'Carmelo', 5, 7, 9, 7],
['Laura', 'Jazmine', 7, 8, 5, 6.66],
['Dario', 'Villalobos', 5, 6, 3, 4.66],
['Marito', 'Tasolo', 4, 7, 9, 6.666],
['Esteban', 'Quito', 9, 9, 8, 8.66]
]
Tabla = """\
+---------------------------------------------------------------------+
| Nombre Apellido Primero Segundo Tercero Promedio anual|
|---------------------------------------------------------------------|
{}
+---------------------------------------------------------------------+\
"""
Tabla = Tabla.format('\n'.join("| {:<8} {:<10} {:>8} {:>6} {:>7} {:>23} |".format(*fila) for fila in ListasAlumnos))
print(Tabla)
+---------------------------------------------------------------------+ | Nombre Apellido Primero Segundo Tercero Promedio anual| |---------------------------------------------------------------------| | Juan Carmelo 5 7 9 7 | | Laura Jazmine 7 8 5 6.66 | | Dario Villalobos 5 6 3 4.66 | | Marito Tasolo 4 7 9 6.666 | | Esteban Quito 9 9 8 8.66 | +---------------------------------------------------------------------+
Analicemos el código:
- Las listas respetan el orden de los elementos: comienzan por el nombre y terminan con el promedio anual.
- Asignamos a la variable Tabla el formato de la tabla correspondiente a una fila.
- El
'\n'.join(...)une cada fila con un salto de línea. - El
format(*fila)desempaqueta los elementos de cada lista en los marcadores de posición. - El bucle
for fila in ListasAlumnositera sobre cada alumno.
A partir de aquí puedes darle una salida más «sublime» a tus programas con format en Python. Puedes jugar con este código y agregarle al usuario una opción de editar la tabla o agregar un nuevo alumno a través de un input() respetando el orden de los datos. Luego solo vuelves a imprimir la tabla.
Esto ha sido todo. Espero te haya gustado y por supuesto servido tanto como a mí. ¡Nos vemos en la siguiente entrada! No olvides suscribirte a mi loco blog.
📅 Última actualización: julio 28, 2026
