8.2. f-string: Dar formato al texto#

En programación es muy frecuente tener que elaborar reportes o mensajes que incluyan valores que vamos obteniendo durante la ejecución de nuestro código. Una de las formas más sencillas y modernas de construir cadenas de texto (str) con variables o expresiones es usando f-strings.

8.2.1. ¿Qué es una f-string?#

Las f-strings (abreviatura de formatted strings) fueron introducidas en Python 3.6. Se trata de una forma rápida y legible de insertar valores directamente dentro de una cadena de texto, utilizando una sintaxis clara y eficiente.

8.2.1.1. Sintaxis básica#

Solo necesitas anteponer una f o F a una cadena entre comillas, y luego encerrar las variables o expresiones entre llaves {} dentro de la cadena.

nombre = "Ana"
edad = 30
mensaje = f"{nombre} tiene {edad} años."
print(mensaje)

Salida:

Ana tiene 30 años.

8.2.2. Documentación oficial#

Importante

Por favor revisa la documentación oficial para todos los tipos de formato posibles y cómo utilizarlos. Esta es una herramienta muy útil y poderosa, pero puede ser confusa al principio.

8.2.3. Ventajas#

  • Es más legible y eficiente

  • Permite incluir expresiones directamente dentro de las llaves.

8.2.4. f-strings con expresiones#

No solo puedes insertar variables, también puedes escribir expresiones completas:

a = 5
b = 3
print(f"La suma de {a} + {b} es {a + b}")

Salida:

La suma de 5 + 3 es 8

8.2.5. f-strings con formatos numéricos#

También puedes controlar cómo se muestra un número: número de decimales, porcentaje, notación científica, etc.

8.2.5.1. Ejemplo: Redondear decimales#

pi = 3.14159265
print(f"El valor de pi es aproximadamente {pi:.2f}")

Salida:

El valor de pi es aproximadamente 3.14

8.2.5.2. Ejemplo: Porcentajes#

aprobados = 18
total = 20
print(f"Aprobaron el {aprobados/total:.1%} del grupo.")

Salida:

Aprobaron el 90.0% del grupo.

8.2.6. f-strings con alineación y relleno#

Puedes ajustar el texto para que tenga una longitud fija, se alinee a la izquierda, derecha o al centro, o incluso rellenar con otros caracteres.

producto = "Manzana"
precio = 7.5
print(f"{producto:<10} ${precio:>6.2f}")

Salida:

Manzana   $  7.50

8.2.7. f-strings multilínea#

Puedes usar f-strings también en cadenas de varias líneas, útil para reportes más largos:

nombre = "Carlos"
edad = 45
profesion = "Ingeniero"

reporte = f"""
Nombre: {nombre}
Edad: {edad}
Profesión: {profesion}
"""
print(reporte)