Al utilizar un f string de Python, puedes insertar ex­pre­sio­nes y variables complejas di­re­c­ta­me­n­te en una cadena sin necesidad de realizar co­n­ve­r­sio­nes o formateos adi­cio­na­les.

¿Qué son los Python f strings?

Los Python f strings, también de­no­mi­na­dos literales de cadena fo­r­ma­tea­dos 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 co­n­ca­te­na­ció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 ex­pre­sio­nes en di­fe­re­n­tes tipos de datos como números enteros, floats, listas o incluso ex­pre­sio­nes y funciones sin necesidad de co­n­ve­r­sió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 ex­pre­sio­nes 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.
python

En 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.

Hosting
Hosting de primera al mejor precio
  • 3x más rápido, ahora un 60 % de ahorro
  • Alta di­s­po­ni­bi­li­dad >99.99 %
  • Solo en IONOS: hasta 500 GB incluidos

Apli­ca­cio­nes de los Python f strings

Las cadenas f pueden tener usos muy diversos. A co­n­ti­nua­ción, te ex­pli­ca­mos los más im­po­r­ta­n­tes.

Realizar cálculos dentro de una cadena

Los f strings de Python son es­pe­cia­l­me­n­te útiles cuando es necesario efectuar ope­ra­cio­nes ari­t­mé­ti­cas 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
python

En este caso, la suma de num1 y num2 se realiza dentro de la cadena f, y el resultado se añade di­re­c­ta­me­n­te a la cadena final.

Python f strings y raw strings

Al combinar r (referido a raw strings) y f (referido a las cadenas fo­r­ma­tea­das o f strings), se crea un tipo especial de cadena en Python conocida como cadena rf. La cadena rf presenta entonces la fu­n­cio­na­li­dad de los raw strings, que in­te­r­pre­tan se­cue­n­cias de escape li­te­ra­l­me­n­te, así como la fle­xi­bi­li­dad y potencia de los f strings, que permiten incrustar variables y ex­pre­sio­nes di­re­c­ta­me­n­te en una cadena.

name = "User"
path = rf'C:\Users\Username\Documents\{name}\file.txt'
print(path) # Output: C:\Users\Username\Documents\User\file.txt
python

En este código, se utiliza la cadena rf para definir una ruta. Al uti­li­zar­se {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 es­pe­ci­fi­car la cantidad de decimales de un número de cola flotante en la cadena fo­r­ma­tea­da. Para ello, debes emplear in­s­tru­c­cio­nes de formato:

value = 3.14159265359
formatted_value = f"Rounded value = {value:.3f}"
print(formatted_value) # Output: Rounded value = 3.142
python

En 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 uti­li­za­n­do {value:.3f}. Fi­na­l­me­n­te, se imprime el resultado, que muestra el valor re­do­n­dea­do con tres decimales.

Ancho y ali­nea­ción

En los Python f strings es posible controlar el aspecto de los valores in­se­r­ta­dos dentro de un campo es­pe­ci­fi­ca­do a través del ancho y la ali­nea­ción. Esta función sirve para colocar texto o números en un área es­pe­cí­fi­ca y ali­near­los a la izquierda, derecha o ce­n­trar­los.

Su­po­n­ga­mos que tenemos el nombre __Alice__ y queremos colocarlo en un campo de diez ca­ra­c­te­res 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
python

Como el valor tiene menos de diez ca­ra­c­te­res, se alinea a la derecha uti­li­za­n­do {nombre:>10}.

Rellenar con ceros u otros ca­ra­c­te­res

Al rellenar con ceros u otros ca­ra­c­te­res, se influye en la ali­nea­ció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
python

En 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 es­pe­ci­fi­car también ca­ra­c­te­res distintos de cero. Se uti­li­za­ría esta sintaxis:

word = "Python"
formatted_word = f"Word: {word:_<10}"
print(formatted_word) # Output: Word: Python____
python
Ir al menú principal