Función Format en Python 3

Python

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 de suma (+) o la coma (,) para concatenar las variables de nuestro código, utilizaremos las llaves {} para situar el valor de las variables y posteriormente, dentro de los paréntesis de la funcón como parámetro, indicaremos las variables involucradas en su respectivo orden.

Sintaxis de la función

A diferencia de otras versiones de Python 3 debemos de utilizar los paréntesis en todas las funciones predefinidas y así, no obtener errores.

Si vienes de otros lenguajes de programación te será muy familiar concatenar los string de las siguientes formas:

# Opción 1
print("Hola " + nombre)

# Opción 2
print("Hola ", nombre)

Pues bien, a diferencia de la forma tradicional con la función format() lo haremos de la siguiente manera. Ojo, recuerda respetar el punto precedido por el string.

nombre = "Valeria"
apellido = "Soto"

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

Visto el ejemplo se puede deducir que se trata de dos variables cuyo valor en los dos casos son del tipo string. Dentro del print() hay un mensaje donde las llaves, representan las variables que queremos mostrar y luego, precedido está la función format() con sus parámetros o variables.

Como ves la función debe de estar dentro de los paréntesis de la función print() y no fuera y así, evitaras un error de sintaxis muy común que suele cometerse cuando se empieza a programar en Python.

Uso de 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 la función format().

p0 = "man"    # posición 0 => (reutilizamos)
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 cómic, 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 de la función, 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))
# Salida
Somos manMega, SuperMega y BatMega.

Nota

Con la función format() el orden de los factores si que altera el producto por lo que para evitar errores, sigue el orden del mismo.

Ejemplos y casos

Para que puedas familiarizarte con el concepto y más concretamente con la función format(), he creado unos hipotéticos casos para que pongas en práctica y así, empezar a aplicarlo en proyectos futuros.

Con strings

Veamos un ejemplo sencillo donde imprimiremos el nombre, apellido y la edad de un usuario.

# Entrada de teclado para cada variable
nombre = input(str("Introduzca su nombre: "))
apellido = input(str("Ahora su apellido: "))
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)))

La salida que estás viendo está basado en los datos introducidos por teclado, si pruebas este código en tu editor de texto obtendrás los datos que diste como entrada.

# Salida
Nombre: Alejandro
Apellido: VDA
Edad: 38

Con números

Veamos un ejemplo con números representando el valor de Pi y importando la librería math.

# Importamos la lbrería math
import math as m
valor_pi = m.pi

print("El valor de Pi es: {0}".format(valor_pi))
# Salida
El valor de Pi es: 3.141592653589793

Con operaciones

En este ejemplo vamos a multiplicar cualquier número que introduzcamos por teclado y este, se multiplicará por cinco.

operando1 = 5
# Entrada por teclado
operando2 = int (input("Introduce un número a calcular * 5: "))

# Realizamos la operación 5 * x
resultado = operando1 * operando2

# Formateamos su salida
print("El resultado de {0} x {1} es: {2}".format(operando1, operando2, resultado))

Este el resultado desde mi terminal de Colab de Google, entorno que utilizo además de Anaconda.

Resultado en Colab

Conclusión

En este artículo hemos podido darle formato a nuestro código con la función format() que como hemos podido ver, podemos mejorar nuestros programas para que otras personas lo encuentren de forma más legible, estructurado y entendible.

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

NEWSLETTER

Suscribirte a Exploradata.com es recibir en tu bandeja de entrada los últimos artículos y novedades del blog, para que no te pierdas nada.