Cómo formatear cadenas en Python (cadenas f y formato)

Aprenda las mejores técnicas de formato de cadenas en Python. Compare cadenas f modernas, formato() y formato de porcentaje con ejemplos de código.

Pruebe esta solución en el Editor

Descripción general

Formatear cadenas es una necesidad diaria para representar variables dentro de mensajes, generar registros, imprimir depuraciones de consola y crear páginas web. Python ha evolucionado significativamente el formato de cadenas a lo largo de los años, ofreciendo múltiples opciones para construir representaciones de texto dinámicas de forma segura y legible.

En Python moderno (3.6+), el enfoque estándar y más popular es el formateo con cadenas f (literales de cadena formateados). Al anteponer una cadena con `f` o `F`, puede incrustar expresiones o variables de Python directamente dentro de las llaves `{}`. Estas expresiones se evalúan en tiempo de ejecución, lo que hace que las cadenas f sean más rápidas y significativamente más legibles que los métodos de formato más antiguos.

Las bases de código Python más antiguas pueden utilizar el método `.format()` o el formato porcentual `%`. Si bien todavía son compatibles, generalmente no se recomiendan para código nuevo. Las cadenas f también admiten potentes especificadores de formato en línea, lo que le permite controlar la precisión decimal (por ejemplo, `{valor:.2f}`), alinear texto o formatear fechas directamente dentro de variables de cadena.

Código y salida de ejecución

Este script demuestra la impresión de bloques de texto dinámicos usando cadenas f, formateando puntos flotantes y usando .format().

format_strings.py
Pruébelo en el editor
name = "Alice"
age = 30
pi = 3.14159

# 1. Using modern f-strings (Recommended)
greeting_f = f"Hello, my name is {name} and I am {age} years old."
print("f-string:", greeting_f)

# 2. formatting floats (2 decimal places precision)
precision_f = f"Pi rounded: {pi:.2f}"
print(precision_f)

# 3. Using the older .format() method
greeting_format = "Hello, my name is {} and I am {}.".format(name, age)
print(".format():", greeting_format)
Salida terminal
f-string: Hello, my name is Alice and I am 30 years old.
Pi rounded: 3.14
.format(): Hello, my name is Alice and I am 30.

Implementación paso a paso

  • Anteponga el literal de cadena con el carácter f (por ejemplo, f'Hola...').
  • Inserte variables o expresiones directamente dentro de llaves {} dentro de la cadena.
  • Utilice especificaciones de formato como :.2f para manejar el formato decimal dentro de las llaves.

Preguntas frecuentes

¿Las cadenas f son más rápidas que el formato .format() y %?

Sí, las cadenas f se evalúan en tiempo de ejecución como operaciones de código de bytes optimizadas, lo que las hace más rápidas que los operadores .format() y %.

¿Puedo ejecutar funciones o evaluar expresiones dentro de cadenas f?

Sí, cualquier expresión válida de Python (incluidas operaciones matemáticas, llamadas a funciones y búsquedas en diccionarios) se puede evaluar dentro de las llaves.

Temas relacionados

Recursos recomendados de Python

Amplíe sus conocimientos con tutoriales interactivos relacionados, hojas de trucos y comparaciones de códigos.