Python f strings: cómo formatear cadenas
Al utilizar un f string de Python, puedes insertar expresiones y variables complejas directamente en una cadena sin necesidad de realizar conversiones o formateos adicionales.
¿Qué son los Python f strings?
Los Python f strings, también denominados literales de cadena formateados o cadenas f, son un tipo de formato de string de Python que se introdujo con la versión Python 3.6. Los f strings permiten una notación más compacta que otros métodos de formateo de cadenas como str.format()
o la concatenación con +
, por lo que el código resulta más claro y conciso.
Las cadenas f son muy flexibles y permiten insertar variables y expresiones en diferentes tipos de datos como números enteros, floats, listas o incluso expresiones y funciones sin necesidad de conversión previa o formateo especial. En general, los f strings de Python son más rápidos que otros métodos de formateo de cadenas.
La sintaxis de los f strings
La sintaxis de los f strings es bastante simple. Se compone de un prefijo con la letra f
o F
seguido de una cadena escrita entre comillas (dobles o simples). Dentro de la cadena se pueden utilizar variables o expresiones que se escriben entre llaves {}
. Por ejemplo:
name = "Peter"
age = 25
formatted_string = f"My name is {name} and I am {age} years old."
print(formatted_string) # Output: My name is Peter and I am 25 years old.
pythonEn el ejemplo anterior, se reemplaza la variable name
(nombre) por {name}
y la variable age
(edad) por {age}
en la cadena f para crear la cadena final.
- Rápido, seguro, flexible y escalable
- Seguro con SSL y protección DDoS
- Dominio y asesor personal incluidos
Aplicaciones de los Python f strings
Las cadenas f pueden tener usos muy diversos. A continuación, te explicamos los más importantes.
Realizar cálculos dentro de una cadena
Los f strings de Python son especialmente útiles cuando es necesario efectuar operaciones aritméticas dentro de una cadena. Gracias a ellos es posible definir una expresión compleja en una sola línea, tal y como se muestra en este ejemplo:
num1 = 10
num2 = 5
result = f"The sum of {num1} and {num2} is {num1 + num2}"
print(result) # Output: The sum of 10 and 5 is 15
pythonEn este caso, la suma de num1
y num2
se realiza dentro de la cadena f, y el resultado se añade directamente a la cadena final.
Python f strings y raw strings
Al combinar r
(referido a raw strings) y f
(referido a las cadenas formateadas o f strings), se crea un tipo especial de cadena en Python conocida como cadena rf. La cadena rf presenta entonces la funcionalidad de los raw strings, que interpretan secuencias de escape literalmente, así como la flexibilidad y potencia de los f strings, que permiten incrustar variables y expresiones directamente en una cadena.
name = "User"
path = rf'C:\Users\Username\Documents\{name}\file.txt'
print(path) # Output: C:\Users\Username\Documents\User\file.txt
pythonEn este código, se utiliza la cadena rf para definir una ruta. Al utilizarse {name}
dentro de la cadena rf, se causa la inserción directa de la variable name
, mientras que la r
situada delante de la cadena hace que la barra invertida \
se trate como un carácter literal y no como parte de una secuencia de escape.
La precisión de los números en coma flotante
Puedes especificar la cantidad de decimales de un número de cola flotante en la cadena formateada. Para ello, debes emplear instrucciones de formato:
value = 3.14159265359
formatted_value = f"Rounded value = {value:.3f}"
print(formatted_value) # Output: Rounded value = 3.142
pythonEn este ejemplo, se define una variable value
que contiene un número decimal. Después, se utiliza un f string para formatear este valor con tres decimales utilizando {value:.3f}. Finalmente, se imprime el resultado, que muestra el valor redondeado con tres decimales.
Ancho y alineación
En los Python f strings es posible controlar el aspecto de los valores insertados dentro de un campo especificado a través del ancho y la alineación. Esta función sirve para colocar texto o números en un área específica y alinearlos a la izquierda, derecha o centrarlos.
Supongamos que tenemos el nombre __Alice__
y queremos colocarlo en un campo de diez caracteres de ancho a la derecha. Habría que hacer lo siguiente:
name = "Alice"
formatted_name = f"Hello, {name:>10}"
print(formatted_name) # Output: Hello, Alice
pythonComo el valor tiene menos de diez caracteres, se alinea a la derecha utilizando {nombre:>10}
.
Rellenar con ceros u otros caracteres
Al rellenar con ceros u otros caracteres, se influye en la alineación de los números de un campo. Puede ser útil cuando deben mostrarse los números en un formato fijo, por ejemplo para indicar horas o valores numéricos.
number = 42
formatted_number = f"Number: {number:06}"
print(formatted_number) # Output: Number: 000042
pythonEn este caso, :06
indica que el número number
se introduce en un campo de seis dígitos, por lo que se rellenan los dígitos que faltan con ceros a la izquierda.
Para rellenar se pueden especificar también caracteres distintos de cero. Se utilizaría esta sintaxis:
word = "Python"
formatted_word = f"Word: {word:_<10}"
print(formatted_word) # Output: Word: Python____
python