Usando f-strings (literal string interpolation)

F-strings se introdujo en la versión 3.6 de Python para mejorar los sistemas habituales de formateado de texto.

Entre los sistemas mas comunes se encuentra el sistema de strings con % y usando los tipos de representación de cadenas como por ejemplo %s para indicar cadenas de texto, %d para decimales, %c para caracteres, %b para binarios, etc.

Estos son algunos de los tipos de presentación disponibles que se encuentran en la documentación oficial:

TipoSignificado
's'Formato de cadena de caracteres. Éste es el tipo por defecto y puede ser omitido.
NoneLo mismo que 's'.
Tipos de cadenas de caracteres
https://docs.python.org/es/3/library/string.html#custom-string-formatting

TipoSignificado
'b'Formato binario. retorna el número en base 2.
'c'Carácter. Convierte el entero en el carácter unicode correspondiente antes de imprimirlo.
'd'Decimal entero. retorna el número en base 10.
'o'Formato octal. retorna el número en base 8.
'x'Formato hexadecimal. retorna el número en base 16, utilizando letras minúsculas para los dígitos superiores a 9.
'X'Formato hexadecimal. retorna el número en base 16, utilizando letras mayúsculas para los dígitos superiores a 9. En caso de que '#' se especifique, el prefijo '0x' convertirá en '0X' también.
'n'Número. Es lo mismo que 'd', excepto que usa la configuración regional actual para insertar el número apropiado de caracteres separadores.
NoneLo mismo que 'd'.
Tipos para enteros
https://docs.python.org/es/3/library/string.html#custom-string-formatting

Por ejemplo, en el siguiente código reemplazamos los tipos %s y %d por las variables correspondientes para obtener el resultado:

uno de enero del año 2023

day = "uno"
month = "enero"
year = 2023
myformat = "%s de %s del año %d" %(day,month,year)
print(myformat)

Si bien el sistema es efectivo puede resultar un poco confuso y hay que saber que tipo de variable vamos a poner para indicar el tipo correspondiente.

Otro sistema común es el string.format() donde introduces llaves vacias, con posición o pasando variables en el argumento. Por ejemplo para obtener el resultado del ejemplo anterior escribiriamos algo así:

day = "uno"
month = "enero"
year = 2023
myformat = "{} de {} del año {}".format(day,month,year)
print(myformat)

o

myformat = "{0} de {1} del año {2}".format(day,month,year)
print(myformat)

o

myformat = "{day} de {month} del año {year}".format(day="uno",month="enero",year=2023)
print(myformat)

El funcionamiento del nuevo sistema f-strings es bien fácil de usar, ponemos una letra f delante del entrecomillado con lo cual le decimos al interprete que ese texto estará formateado y por cada variable incluimos llaves con el nombre de la variable.

El ejemplo de antes, ampliado, quedaría asi:

day = "uno"
month = "enero"
year =2023
myformat = f"{day} de {month} del año {year}"
print(myformat)

print(f"El resultado de 3 x 15 es = {3*5}")

from datetime import datetime
fecha = datetime.now()
print(f"La fecha actual es: {fecha}")

Felices fiestas.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *