Lecciones del módulo (4/4)
Impresión y f-strings
Para comunicar algo al usuario (o para ver qué está sucediendo dentro de
nuestro programa) utilizamos la función integrada print(...). Para componer
texto a partir de múltiples valores, la sintaxis moderna y preferida es la
f-string.
print(...)
print("Ciao, mondo!") # Ciao, mondo!
print("a", "b", "c") # a b c (separati da spazio)
print(2 + 2) # 4
print("riga 1", "riga 2") # riga 1 riga 2print puede tomar tantos argumentos como desees: los une con un espacio (por
defecto) y añade una nueva línea al final. Puedes cambiar ambos con los
parámetros sep y end:
print("a", "b", "c", sep="-") # a-b-c
print("senza newline", end="") # niente \n dopof-string: interpolación moderna
Una f-string es una cadena precedida por f: dentro de las llaves {...}
puedes insertar cualquier expresión de Python, la cual será evaluada e insertada en el
resultado:
nome = "Ada"
anni = 30
print(f"Mi chiamo {nome} e ho {anni} anni.")
# Mi chiamo Ada e ho 30 anni.Dentro de las llaves puedes poner llamadas, operaciones, accesos a objetos — es código Python en todos los aspectos:
prezzo = 12.5
quantita = 3
print(f"Totale: {prezzo * quantita:.2f} €")
# Totale: 37.50 €El :.2f después de los dos puntos es una especificación de formato (format spec): en este caso "dos dígitos
decimales, punto fijo". Las especificaciones de formato más útiles:
:.Nf— N dígitos decimales (f"{pi:.4f}"→3.1416).:N/:>N/:<N/:^N— ancho N, alineación derecha/izquierda/centro.:_o:,— separador de miles (f"{1000000:,}"→1,000,000).
Sintaxis alternativas (para referencia)
Antes de las f-strings (introducidas en Python 3.6) se usaban dos formas que aún encontrarás en código más antiguo:
# stile .format() — verboso ma esplicito
"{} ha {} anni".format("Ada", 30)
# stile %-formatting — molto vecchio
"%s ha %d anni" % ("Ada", 30)Para código nuevo, usa siempre f-strings: más cortas, más legibles, más rápidas.
Formateo avanzado con f-strings
Las f-strings admiten ricas especificaciones de formateo directamente dentro de las llaves. Por ejemplo, para formatear un número decimal con exactamente dos decimales, puedes escribir:
price = 19.99
print(f"Price: {price:.2f} $")El especificador :.2f indica que queremos representar el float con exactamente 2 posiciones decimales.
Pruébalo tú
Dados `name = 'Ada'` y `age = 30`, construye la cadena 'Ada ha 30 anni' con una f-string y asígnala a `line`. Evalúa `line`.
Mostrar pista
Sintaxis: f"something {variable} something else"
Solución disponible después de 3 intentos
Ejercicio de repaso
Imprime con print() la cadena 'pi greco vale 3.14' a partir de `pi = 3.14159`, usando una f-string con una especificación de formato de 2 decimales.
Mostrar pista
La especificación de formato va después de los dos puntos dentro de las llaves: {pi:.2f}.
Solución disponible después de 3 intentos
Desafío adicional
Dada una variable `price` establecida en `19.99`, usa una f-string para construir la cadena `'Price: 19.99 €'` y almacénala en `receipt_line`. Finalmente, evalúa la variable.
Mostrar pista
Usa f"Price: {price} €" y asigna el resultado a receipt_line.
Solución disponible después de 3 intentos