En las últimas versiones se ha agregado al lenguaje Python la posibilidad de definir string y dentro hacer la sustitución de variables.
Veamos con un ejemplo cual es la sintaxis para implementar los f-strings en Python.
Ingresar por teclado dos enteros, calcular su suma y luego mostrar un mensaje de los dos valores ingresados y su suma.
valor1=int(input("Ingrese primer valor:")) valor2=int(input("Ingrese segundo valor:")) suma=valor1+valor2 print(f"La suma de {valor1} y {valor2} es {suma}")
Para indicar que un string en Python contendrá variables a ser sustituidas debemos anteceder el caracter "f":
print(f"La suma de {valor1} y {valor2} es {suma}")
Las variables a ser sustituidas por su valor deben estar encerradas entre llaves.
El resultado de la ejecución es:
No olvidar el caracter "f" previo a la declaración del string sino el resulta será:
La suma de {valor1} y {valor2} es {suma}
Definir una lista con 5 valores enteros. Mostrar los 5 valores formateados a derecha junto a su suma.
lista=[2000, 500, 17000, 24, 7] for elemento in lista: print(f"{elemento:10}") print("----------") print(f"{sum(lista):10}")
El resultado de la ejecución es:
Cuando disponemos entre llaves la variable a sustituir podemos agregar luego dos puntos y la cantidad de espacios que ocupará la variable:
print(f"{elemento:10}")
También otra posibilidad es indicar entre llaves la llamada a una función (la función sum retorna la suma de toda la lista):
print(f"{sum(lista):10}")
Definir una lista con 5 valores flotantes con distintas cantidades de decimales. Mostrar los números solo con dos decimales.
lista=[30.195, 400.2, 20.5555, 18.34, 67.0] for elemento in lista: print(f"{elemento:10.2f}")
El resultado de la ejecución es:
Si queremos insertar los caracteres de apertura o cerrado de llaves en un f-strings debemos duplicarlos para que lo interprete Python:
valor1=10 print(f"{{valor1}} tiene el valor {valor1}")
Luego el string que se imprime en pantalla es:
{valor1} tiene el valor 10
Podemos utilizar tanto el caracter "f" minúscula como el caracter "F" mayúscula para indicar que se trata de un f-strings.
valor1=10 print(F"{{valor1}} tiene el valor {valor1}")
Se puede utilizar los f-strings para cadenas de múltiples líneas:
valor1=1000 valor2=340 suma=valor1+valor2 cadena=f""" {valor1:5} {valor2:5} ----- {suma:5} """ print(cadena)
El resultado de la ejecución es:
1000 340 ----- 1340
Anteriormente sin la sintaxis de los f-strings debíamos convertir todos los datos a string y concatenarlos:
valor1=int(input("Ingrese primer valor:")) valor2=int(input("Ingrese segundo valor:")) suma=valor1+valor2 print("La suma de "+str(valor1)+" y "+str(valor2)+" es "+str(suma))
También podíamos utilizar el método format:
valor1=int(input("Ingrese primer valor:")) valor2=int(input("Ingrese segundo valor:")) suma=valor1+valor2 print("La suma de {} y {} es {}".format(valor1, valor2, suma))
Con la llegada de los f-strings el código fuente de nuestro programa es mucho más legible.