CAP 02 · LEC 05·Sintaxis

f-strings: formateo moderno y expresivo de cadenas

Los f-strings son la forma moderna de construir cadenas con valores dinámicos. Más claros que % y más concisos que .format() — son la opción por defecto desde Python 3.6.

● PRINCIPIANTE7 min lectura4 ejerciciospor Fernando Herrera · actualizado mayo de 2026
¿Encontraste un error o algo que mejorar?Editá esta lección en GitHub →

Sintaxis básica

Un f-string comienza con la letra f (o F) antes de las comillas. Cualquier expresión entre llaves {} se evalúa e inserta en el string:

nombre = "Fernando" edad = 30 ciudad = "Madrid" # f-string básico saludo = f"Hola, {nombre}!" print(saludo) # Hola, Fernando! # Múltiples variables presentacion = f"Soy {nombre}, tengo {edad} años y vivo en {ciudad}." print(presentacion) # Comparación con las formas antiguas (no usar en código nuevo) # % formatting (Python 2 style) # "Hola, %s!" % nombre # .format() (Python 3, pero más verboso) # "Hola, {}!".format(nombre) # f-string (Python 3.6+ — la opción moderna) print(f"Hola, {nombre}!")
SalidaHola, Fernando! Soy Fernando, tengo 30 años y vivo en Madrid. Hola, Fernando!

Expresiones dentro de f-strings

Las llaves aceptan cualquier expresión de Python — no solo variables:

a = 10 b = 3 # Operaciones aritméticas print(f"Suma: {a + b}") # Suma: 13 print(f"Potencia: {a ** b}") # Potencia: 1000 # Llamadas a funciones nombre = " python " print(f"Limpio: {nombre.strip().title()}") # Limpio: Python # Expresiones condicionales (ternario) puntos = 85 print(f"Resultado: {'aprobado' if puntos >= 60 else 'reprobado'}") # Listas y acceso a índices colores = ["rojo", "verde", "azul"] print(f"Primer color: {colores[0]}") # Primer color: rojo # Acceso a atributos de objetos from datetime import date hoy = date.today() print(f"Año actual: {hoy.year}") # Año actual: 2026 # Python 3.12+: self-documenting expressions con = x = 42 print(f"{x = }") # x = 42 ← muy útil para depurar
SalidaSuma: 13 Potencia: 1000 Limpio: Python Resultado: aprobado Primer color: rojo Año actual: 2026 x = 42
f-strings para depurar con =

f"{variable = }" (con el signo igual dentro) imprime tanto el nombre de la variable como su valor. Es una forma rápida de depurar sin tener que escribir print(f"variable = {variable}").

Formateo de números y fechas

Los f-strings tienen un mini-lenguaje de formato después del : que controla cómo se muestra el valor:

precio = 1234567.891 pi = 3.14159265 # Decimales: :.2f = 2 decimales, f = float print(f"{pi:.2f}") # 3.14 print(f"{pi:.5f}") # 3.14159 # Separador de miles: :, print(f"{precio:,.2f}") # 1,234,567.89 # Separador de miles estilo español: :_.2f (guion bajo) print(f"{precio:_.2f}") # 1_234_567.89 # Notación científica: :e print(f"{precio:.2e}") # 1.23e+06 # Porcentaje: :.1% tasa = 0.1567 print(f"{tasa:.1%}") # 15.7% # Enteros con relleno: :05d = 5 caracteres, rellenado con ceros numero = 42 print(f"{numero:05d}") # 00042 print(f"{numero:>10}") # " 42" (alineado a la derecha) print(f"{numero:<10}") # "42 " (alineado a la izquierda) print(f"{numero:^10}") # " 42 " (centrado) # Formateo de fechas from datetime import date hoy = date(2026, 5, 3) print(f"{hoy:%d/%m/%Y}") # 03/05/2026 print(f"{hoy:%B %Y}") # May 2026
Salida3.14 3.14159 1,234,567.89 1_234_567.89 1.23e+06 15.7% 00042 42 42 42 03/05/2026 May 2026

Cadenas multilínea con f-strings

Los f-strings pueden ser multilínea con comillas triples:

nombre = "Fernando" puntos = 1250 nivel = "Avanzado" rango = 15 # f-string multilínea reporte = f""" ╔══════════════════════════════╗ ║ PERFIL DE USUARIO ║ ╠══════════════════════════════╣ ║ Nombre: {nombre:<20}║ Puntos: {puntos:<20,}║ Nivel: {nivel:<20}║ Ranking #{rango:<19}╚══════════════════════════════╝ """ print(reporte)
Salida╔══════════════════════════════╗ ║ PERFIL DE USUARIO ║ ╠══════════════════════════════╣ ║ Nombre: Fernando ║ ║ Puntos: 1,250 ║ ║ Nivel: Avanzado ║ ║ Ranking #15 ║ ╚══════════════════════════════╝
Cuidado con los backslashes en f-strings

No puedes usar backslashes (\) directamente dentro de las llaves de un f-string. Si necesitas un salto de línea u otro carácter especial dentro de la expresión, asígnalo a una variable primero.

Practica

Cuatro ejercicios para dominar los f-strings en Python.