Formateo de strings con f-strings en Python
Clase 5 de 25 • Curso de Python: Entornos virtuales, PEP8 y Manejo de Errores
Resumen
Los f-strings en Python permiten formatear texto de forma clara y eficiente, integrando variables, operaciones y lógica directamente entre llaves. Aquí verás cómo usarlos bien, por qué mejoran la legibilidad frente a .format y qué posibilidades abren para cálculos, métodos y condicionales en una sola línea.
¿Qué son los f-strings en Python y por qué usarlos?
Los f-strings se crean anteponiendo una letra f al inicio de las comillas. Con eso, puedes colocar expresiones dentro de llaves y Python las evalúa al imprimir. Según se comenta, fueron agregados desde Python 3.6 y funcionan en versiones actuales como 3.13, con mejoras de rendimiento y legibilidad frente a .format.
- Mejor legibilidad: ves variables y lógica en el lugar donde se imprimen.
- Mejor rendimiento: el formateo es más rápido en versiones modernas de Python.
- Sintaxis directa: basta con escribir f"... {expresión} ...".
¿Cómo verificar la versión de Python?
Confirma que Python sea 3.6 o superior. El ejemplo menciona 3.13 como versión instalada, por lo que es compatible con f-strings.
¿Qué ventaja tienen sobre format?
Con .format las variables quedan lejos del texto, lo que dificulta leer qué se inserta. Con f-strings, la interpolación es inmediata y el código se entiende de un vistazo.
Ejemplo equivalente con .format que resulta menos claro:
nombre = "Ana"
texto = "Hola, {}".format(nombre)
print(texto)
¿Qué precaución con el editor?
Si antepones la f pero no usas llaves, algunos editores o linters como “Ruf” podrían eliminar la f automáticamente por no aportar nada. Asegúrate de incluir al menos una expresión entre llaves.
¿Cómo insertar variables, operaciones y funciones dentro de f-strings?
Dentro de las llaves puedes colocar variables, operaciones matemáticas y llamadas a métodos o funciones. Esto reduce errores y concentra la lógica donde se muestra el texto.
¿Cómo interpolar variables?
nombre = "Ana"
saludo = f"Hola, {nombre}"
print(saludo)
- Interpola el valor de una variable entre llaves.
- Mantiene el texto y los datos juntos.
¿Cómo ejecutar operaciones y cálculos?
- Operaciones aritméticas simples en línea.
suma = f"La suma es {1 + 1}"
print(suma) # La suma es 2
- Cálculos más expresivos, como una edad a partir del año de nacimiento.
nombre = "Ana"
anio_nacimiento = 2020
anio_actual = 2025 # ejemplo de año actual
mensaje = f"Hola, {nombre}, tu edad es {anio_actual - anio_nacimiento} años"
print(mensaje)
- Ventaja: legibilidad y menor propensión a errores, porque el cálculo vive en la misma línea del texto.
¿Cómo llamar métodos y funciones?
Puedes invocar métodos de cadenas como .upper directamente en el f-string.
nombre = "Ana"
texto = f"Hola, {nombre.upper()}"
print(texto) # Hola, ANA
- También puedes llamar funciones propias si lo necesitas.
- El editor puede autocompletar porque estás escribiendo código Python normal dentro de las llaves.
¿Cómo usar condicionales y otros recursos dentro de f-strings?
Los f-strings aceptan expresiones, incluyendo condicionales tipo if/else en línea. Además, permiten acceder a estructuras como diccionarios y, de forma avanzada, aplicar formateadores con el operador dos puntos.
¿Cómo escribir condicionales inline?
nombre = "Ana"
edad = 20
msg = f"Hola, {nombre}, eres {'mayor de edad' if edad >= 18 else 'menor de edad'}"
print(msg)
- Útil para pluralizar o ajustar textos según cantidades.
- Mantiene la lógica condicional cercana al mensaje.
¿Dónde aplicar plural o singular?
- Cuando generas textos con conteos.
- Para diferenciar “mayor”/“menor”, “elemento”/“elementos”, según el número.
- Validando la cantidad directamente en las llaves.
Ejemplo de patrón:
cantidad = 1
info = f"Tienes {cantidad} {'elemento' if cantidad == 1 else 'elementos'}"
print(info)
¿Qué más puedes integrar?
- Acceso a diccionarios para mostrar valores.
datos = {"ciudad": "Lima"}
texto = f"Vives en {datos['ciudad']}"
print(texto)
- Próximo paso: uso avanzado de formateadores con el operador : para números y texto.
¿Tienes otra idea útil con f-strings? Compártela en los comentarios y cuéntanos cómo te ayudó en tu código.