Qué son las f-strings en Python

Curso Práctico de Python: Creación de un CRUD

Toma las primeras clases gratis

COMPARTE ESTE ARTÍCULO Y MUESTRA LO QUE APRENDISTE

Una de las cosas más comunes que solemos realizar en cualquier programa de software es imprimir un texto en pantalla dependiendo de las variables, errores o condiciones.

Versiones anteriores

En Python 2.7 una manera de realizar esto era de la siguiente forma.

course = 'Python'
platform = 'Platzi'

print('El nuevo curso de %s en %s está increíble') % (course, platform)
El nuevo curso de Python en Platzi esta increíble

Es lo suficientemente legible, pero en el caso donde agreguemos más variables al texto final entonces nuestra línea se irá haciendo mucho más grande y afectará la lectura de nuestro código.

Esta manera ya está deprecada(como 2.7 y deberías tratar de actualizar a Python 3) y seguro la estás utilizando haciendo uso de str.format().

course = 'Python'
platform = 'Platzi'

print('El nuevo curso de {} en {} está increíble').format(course, platform)
El nuevo curso de Python en Platzi está increíble

Esta opción nos da la oportunidad de jugar incluso con diccionarios para introducirlos en nuestro string, este es un ejemplo de eso:

course = {'name': 'Python', 'teacher': 'David'}

print('En el curso de {name} el profesor es {teacher}').format(name=course['name'], teacher=course['teacher'])
En el curso de Python el profesor es David

O también:

course = {'name': 'Python', 'teacher': 'David'}
print('En el curso de {name} el profesor es {teacher}').format(**course)
En el curso de Python el profesor es David

Sin embargo, seguimos teniendo el mismo problema anterior, sigue siendo un poco ilegible nuestro código y necesitamos verificar las variables puestas en .format() correspondan a las que queremos mostrar en nuestro string. Incluso si lo dividimos en varias líneas seguirá perdiendo legibilidad.

f-strings, Python 3.6 en adelante.

A partir de esta versión se introdujeron las f-strings o literals strings, para resolver un poco estos problemas de legibilidad, explicadas más al detalle en PEP498. Si vienes del mundo de JavaScript te resultará muy similar, con la única diferencia que debes colocar la f al principio de nuestros strings.

course = 'Python'
platform = 'Platzi'

print(f"El nuevo curso de {course} en {platform} está increíble")
El nuevo curso de Python en Platzi está increíble

¿No notas una gran diferencia ahora? Tenemos una línea más corta, más legible. Nos da la oportunidad de llamar funciones o métodos, por ejemplo si quisiéramos colocar course en mayúsculas.

print(f"El nuevo curso de {course.upper()} en {platform} está increíble")
El nuevo curso de PYTHON en Platzi está increíble

Ya que las f-strings son evaluadas al momento de la ejecución tenemos la posibilidad de colocar cualquier expresión válida.

print(f"{100 + 28}")
128
print(f"{25 * 7}")
175

Si necesitamos dividir nuestro mensaje en múltiple líneas podemos hacerlo de esta forma.

message = (
    f"Nuevo curso de {course} "
    f"disponible en {platform} "
)

print(message)
Nuevo curso de Python disponible en Platzi

Pero es importante colocar la f al inicio de cada línea de lo contrario Python imprimirá la línea como texto, con llaves y variables inclusive.

Con las nuevas f-strings tenemos la posibilidad de tener un código más entendible en nuestras cadenas de textos, podemos saber directamente qué variables se van a imprimir sin necesidad de placeholders alejados. Estas son más rápidas que las opciones para versiones anteriores.

Puedes aprender más cosas como variables, condicionales, funciones, clases, decoradores con los cursos de python para data science.

Curso Práctico de Python: Creación de un CRUD

Toma las primeras clases gratis

COMPARTE ESTE ARTÍCULO Y MUESTRA LO QUE APRENDISTE

0 Comentarios

para escribir tu comentario

Artículos relacionados