Lecții din modul (4/4)
Imprimare și f-strings
Pentru a comunica ceva utilizatorului (sau pentru a vedea ce se întâmplă în interior
programul nostru) folosim funcția încorporată print(...). A compune
text din mai multe valori, sintaxa modernă și preferată este
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 poate lua câte argumente doriți: le unește cu un spațiu (prin
implicit) și adaugă o linie nouă la sfârșit. Le puteți schimba pe ambele cu
Parametrii sep și end:
print("a", "b", "c", sep="-") # a-b-c
print("senza newline", end="") # niente \n dopof-string: interpolare modernă
Un șir f este un șir prefixat de f: în interiorul acoladelor {...}
puteți insera orice expresie Python, care va fi evaluată și inserată în
rezultat:
nome = "Ada"
anni = 30
print(f"Mi chiamo {nome} e ho {anni} anni.")
# Mi chiamo Ada e ho 30 anni.În interiorul acoladelor puteți pune apeluri, operațiuni, accesări la obiecte - așa este Cod Python din toate punctele de vedere:
prezzo = 12.5
quantita = 3
print(f"Totale: {prezzo * quantita:.2f} €")
# Totale: 37.50 €:.2f după două puncte este o specificație de format: în acest caz, „două zecimale
cifre, virgulă fixă”. Cele mai utile specificații de format:
:.Nf— N cifre zecimale (f"{pi:.4f}"→3.1416).:N/:>N/:<N/:^N— lățime N, aliniere dreapta/stânga/centru.:_sau:,— separator de mii (f"{1000000:,}"→1,000,000).
Sintaxe alternative (pentru referință)
Înainte de f-strings (introdus în Python 3.6) au fost folosite două forme care veți mai întâlni în codul mai vechi:
# stile .format() — verboso ma esplicito
"{} ha {} anni".format("Ada", 30)
# stile %-formatting — molto vecchio
"%s ha %d anni" % ("Ada", 30)Pentru codul nou, folosiți întotdeauna șiruri f: mai scurt, mai lizibil, mai rapid.
Formatare avansată cu șiruri f
Sirurile F acceptă specificații de formatare bogate direct în interiorul acoladelor. De exemplu, pentru a formata un număr zecimal cu exact două zecimale, puteți scrie:
price = 19.99
print(f"Price: {price:.2f} $")Specificatorul :.2f indică faptul că dorim să reprezentăm float cu exact 2 zecimale.
Încercați-l singur
Având în vedere „nume = „Ada”” și „vârsta = 30”, construiți șirul „Ada ha 30 anni” cu un șir f și atribuiți-l la „linie”. Evaluează `line`.
Afișează indiciu
Sintaxă: f"ceva {variabilă} altceva"
Soluție disponibilă după 3 încercări
Exercițiu de revizuire
Imprimați cu print() șirul 'pi greco vale 3.14' începând cu `pi = 3.14159`, folosind un șir f cu o specificație de format de 2 zecimale.
Afișează indiciu
Specificația formatului urmează două puncte din interiorul acoladelor: {pi:.2f}.
Soluție disponibilă după 3 încercări
Provocare suplimentară
Given a variable `price` set to `19.99`, use an f-string to construct the string `'Price: 19.99 €'` and store it in `receipt_line`. Finally, evaluate the variable.
Afișează indiciu
Folosiți f„Preț: {preț} €” și atribuiți rezultatul liniei_chitanței.
Soluție disponibilă după 3 încercări