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

Web Hosting
El hosting como nunca lo habías visto
  • 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
python

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

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

Como 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
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 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
¿Le ha resultado útil este artículo?
Utilizamos cookies propias y de terceros para mejorar nuestros servicios y mostrarle publicidad relacionada con sus preferencias mediante el análisis de sus hábitos de navegación. Si continua navegando, consideramos que acepta su uso. Puede obtener más información, o bien conocer cómo cambiar la configuración de su navegador en nuestra. Política de Cookies.
Page top