El formateo de cadenas
1. Qué es el formateo de cadenas? #
El formateo de cadenas en Python es el proceso de insertar o combinar variables y expresiones dentro de una cadena de texto. Esto es útil cuando necesitas crear mensajes dinámicos que incluyan valores variables, como nombres, números, fechas, etc.
2. Métodos de formateo de cadenas en Python #
- El operador
%(estilo antiguo) - El método
format() - Las f-strings (formato literal de cadenas)
3. Formateo usando el operador % (estilo antiguo) #
Este método utiliza el operador % para insertar valores en una cadena.
1nombre = "Ana" 2edad = 30 3 4# Usar % para formatear la cadena 5mensaje = "Hola, me llamo %s y tengo %d años." % (nombre, edad) 6print(mensaje)Salida de consola Hola, me llamo Ana y tengo 30 años.
- ¿Qué hace este código?:
- Usa
%spara insertar una cadena (nombre) y%dpara insertar un entero (edad). - Los valores
nombreyedadse insertan en la cadena en los lugares correspondientes.
- Usa
4. Formateo usando el método format() #
Este método es más moderno y flexible. Usas llaves {} como marcadores de posición dentro de la cadena y luego llamas a format() para insertar los valores.
1nombre = "Carlos" 2edad = 25 3 4# Usar el método format para formatear la cadena 5mensaje = "Hola, me llamo {} y tengo {} años.".format(nombre, edad) 6print(mensaje)Salida de consola Hola, me llamo Carlos y tengo 25 años.
- ¿Qué hace este código?:
- Usa
{}como marcadores de posición y luegoformat()para insertarnombreyedaden esos lugares.
- Usa
También puedes especificar el orden de los argumentos dentro de las llaves:
1nombre = "Ana" 2edad = 25 3mensaje = "Tengo {1} años y me llamo {0}.".format(nombre, edad) 4print(mensaje)Salida de consola Tengo 25 años y me llamo Ana.
5. Formateo usando f-strings #
Las f-strings son una forma más reciente y concisa de formatear cadenas. Se introdujeron en Python 3.6 y permiten incluir expresiones dentro de las llaves {} directamente en la cadena, precedida por una f.
1nombre = "Lucía" 2edad = 22 3 4# Usar f-strings para formatear la cadena 5mensaje = f"Hola, me llamo {nombre} y tengo {edad} años." 6print(mensaje)Salida de consola Hola, me llamo Lucía y tengo 22 años.
- ¿Qué hace este código?:
- Inserta directamente las variables
nombreyedaddentro de la cadena usando{}.
- Inserta directamente las variables
Características avanzadas de las f-strings #
- Formato numérico y decimales:
1precio = 19.9567 2print(f"Total: {precio:.2f} €") # Redondea a 2 decimalesSalida de consola Total: 19.96 €
- Auto-documentación y depuración con
=(Python 3.8+):
1usuario = "admin" 2puerto = 8080 3print(f"{usuario=}, {puerto=}")Salida de consola usuario='admin', puerto=8080
6. Resumen de los métodos de formateo #
- Operador
%: Método antiguo, menos flexible, pero aún útil. format(): Método moderno, más flexible y claro.- f-strings: Método más reciente, muy conciso y fácil de usar, especialmente útil para código nuevo.
7. Cuál usar? #
- Usa f-strings siempre que sea posible, ya que son más claras y concisas.
format()es útil cuando necesitas más control sobre el formateo o cuando trabajas con versiones de Python anteriores a 3.6.- El operador
%es más antiguo y se utiliza menos en código moderno, pero aún es bueno conocerlo por razones históricas y de compatibilidad.
Resumen del tema
Conceptos clave #
- Evolución del Formateo:
- Operador
%(estilo C / antiguo):"Texto %s %d" % (str_val, int_val). - Método
str.format():"Texto {} {}".format(val1, val2). - f-strings (Python 3.6+ / estándar moderno):
f"Texto {variable} y {expresion}".
- Operador
- Ventajas de las f-strings: mayor legibilidad, ejecución más rápida en tiempo de compilación/bytecode y evaluación directa de expresiones y formato de precisión (ej.
{precio:.2f}).
Qué debes recordar #
Las f-strings (f"Hola {nombre}") son el estándar preferido en Python moderno por su rendimiento, concisión y capacidad de evaluar expresiones directamente.