Función Format en Python 3

La función format en Python 3 puede ser muy útil para concatenar strings y variables de cualquier tipo dentro de un print(), de esta forma, obtendremos un código más limpio y ordenado.

A diferencia de recurrir al operador + o la , para concatenar las variables de nuestro código, utilizaremos las llaves {} para situar el resultado de las variables y posteriormente, dentro de los paréntesis del método format(), indicaremos las variables en su respectivo orden.

Sintaxis de la función Format

A diferencia de otras versiones, en Python 3 debemos de utilizar los paréntesis () en todas las funciones para no obtener errores y ahorrarnos más de un dolor de cabeza.

Si vienes de otros lenguajes de programación te será muy familiar concatenar variables y strings así:

nombre = Mikel
print("Hola " + nombre) 

Pues bien, con la función format lo haremos de la siguiente forma, recuerda respetar el punto precedido por el string

# Declaramos la variable
nombre = "Valeria"
apellido = "Soto"
# Formateamos la salida
print("Hola {} {}".format(nombre, apellido)) 

Como ves, format debe de estar dentro de los paréntesis del print y no fuera, así evitaras un error de sintaxis muy común que se comete cuando se empieza a programar en Python. El resultado es el siguiente:

Hola Valeria Soto

Para que puedas verlo un poquito más claro, .format(nombre, apellido)sería el + nombre + apellido por el que hemos sustituido por llaves {nombre} {apellido}.

Utilizando identificadores

Gracias a los identificadores podemos hacer uso de la misma variable indicando a cuál de ellas queremos llamar. Lo haremos introduciendo la posición dentro de las llaves según el orden que estén en el format.

p0 = "man"    # Reutilizaremos posición 0
p1 = "Mega"   # posición 1
p2 = "Super"  # posición 2
p3 = "Bat"    # posición 3
print("Somos {1}{0}, {2}{0} y {3}{0}.".format(p0, p1, p2, p3))
# Salida
Somos Megaman, Superman y Batman.

Como ves hemos reutilizado la variable p0 que nos ha servido como sufijo para los nombres de estos personajes de comic, sin tener que poner en cada string la palabra man.

En el caso de que no hayamos indicado el contenido de la variable con su respectivo orden dentro del format, el resultado será muy diferente.

Imagínate de que p0 ocupa el sitio de p1 y a la inversa:

print("Somos {1}{0}, {2}{0} y {3}{0}.".format(p1, p0, p2, p3))

Su salida sería diferente:

Somos manMega, SuperMega y BatMega.

Nota

Con format el orden de los factores si altera el producto por lo que, si tienes clara esta parte, no tendrás ningún problema en ponerlo en práctica en tus futuros proyectos.

Ejemplos de uso

Este es un ejercicio resuelto utilizando la función input que como bien sabéis, sirve para insertar datos a nuestras variables como usuarios y desde un terminal.

Ejemplo con strings y la función input

# Declaro la variable cuyo valor de entrada es un string
nombre = input(str("Introduzca su nombre: "))
apellido = input(str("Ahora su apellido: "))
# La entrada de edad debe de ser un int
edad = int (input("Por último su edad: "))
# Convertimos la variable edad en un string
print("\nNombre: {0} \nApellido: {1} \nEdad: {2}".format(nombre, apellido, str(edad)))

Resultado según lo que introduje en los inputs:

Nombre: Alejandro
Apellido: VDA
Edad: 38

Ejemplo con números

# Importamos la lbrería math y la renombramos a m
import math as m
# Declaramos la variable y le damos salida
valor_pi = m.pi
print("El valor de Pi es: {0}".format(valor_pi))

El resultado de valor_pi es:

El valor de Pi es: 3.141592653589793

Ejemplo con operaciones

En este ejemplo vamos a multiplicar cualquier número que introduzcamos en el input * 5

n5 = 5
# Almacenamos el valor de la variable desde el input
numero_introducido = int (input("Introduce un número a calcular * 5: "))
# Realizamos la operación 5 * x
resultado = n5 * numero_introducido
#Por último lo formateamos y le damos salida
print("El resultado de {0} x {1} es: {2}".format(n5, numero_introducido, resultado))

Aquí puedes ver el resultado desde mi terminal de Colab de Google, entorno que utilizo además de Anaconda.

Resultado en Colab

Conclusión

Como has podido ver en este artículo podemos darle formato a nuestro código de una forma más legible y limpia. Además, puedes utilizarlo para practicar, modificarlo y ponerlo a tu gusto, o lo que es mejor, hacer el tuyo propio partiendo de esta base.

Si quieres ampliar más la información puedes hacerlo desde la documentación de Python

¿Te ha parecido útil?