Formattazione dell'output
Perché formattare l’output?
Section titled “Perché formattare l’output?”Stampare dati grezzi funziona, ma non è sempre leggibile. Formattare l’output significa presentare le informazioni in modo chiaro: numeri con il numero giusto di cifre decimali, testo allineato in colonne ordinate.
Le f-string: il metodo consigliato
Section titled “Le f-string: il metodo consigliato”Le f-string (disponibili da Python 3.6) sono il modo più comodo e leggibile per costruire stringhe con variabili. Si scrivono mettendo f prima delle virgolette:
nome = "Alice"eta = 16print(f"Mi chiamo {nome} e ho {eta} anni.")# Mi chiamo Alice e ho 16 anni.Dentro le parentesi graffe puoi scrivere qualsiasi espressione Python:
a, b = 5, 3print(f"{a} + {b} = {a + b}")print(f"Il quadrato di {a} è {a**2}")Controllare i decimali
Section titled “Controllare i decimali”Per i numeri decimali puoi specificare quante cifre mostrare dopo la virgola:
pi = 3.14159265print(f"{pi:.2f}") # 3.14 — 2 cifre decimaliprint(f"{pi:.4f}") # 3.1416 — 4 cifre decimaliprint(f"{pi:.0f}") # 3 — nessuna cifra decimaleLa sintassi è {valore:.Nf} dove N è il numero di cifre decimali.
Percentuali
Section titled “Percentuali”percentuale = 0.75print(f"{percentuale:.0%}") # 75%print(f"{percentuale:.2%}") # 75.00%Python moltiplica per 100 e aggiunge il simbolo % automaticamente.
Separatore delle migliaia
Section titled “Separatore delle migliaia”Per i numeri grandi, puoi aggiungere la virgola come separatore:
numero = 1234567print(f"{numero:,}") # 1,234,567Allineare il testo in colonne
Section titled “Allineare il testo in colonne”Quando vuoi creare tabelle con colonne ordinate, puoi specificare la larghezza e l’allineamento:
print(f"{'Sinistra':<15}|") # allineato a sinistra — 15 caratteriprint(f"{'Centro':^15}|") # centratoprint(f"{'Destra':>15}|") # allineato a destraOutput:
Sinistra | Centro | Destra|Opzioni di print()
Section titled “Opzioni di print()”La funzione print() ha due opzioni utili:
sep — il testo che viene messo tra gli argomenti (default: uno spazio):
print("mela", "banana", "uva") # mela banana uvaprint("mela", "banana", "uva", sep=", ") # mela, banana, uvaprint("mela", "banana", "uva", sep=" | ") # mela | banana | uvaend — il testo aggiunto alla fine (default: va a capo \n):
print("Ciao", end=" ")print("mondo!") # Ciao mondo! — sulla stessa rigaUtile per stampare più elementi sulla stessa riga in un ciclo:
for i in range(5): print(i, end=" ")print() # va a capo alla fine# Output: 0 1 2 3 4Esempio: una tabella formattata
Section titled “Esempio: una tabella formattata”studenti = [ ("Alice", 16, 8.5), ("Bob", 15, 7.0), ("Carlo", 17, 9.2),]
# Intestazione della tabellaprint(f"{'Nome':<10} {'Età':>5} {'Media':>8}")print("-" * 25)
# Righe della tabellafor nome, eta, media in studenti: print(f"{nome:<10} {eta:>5} {media:>8.1f}")Output:
Nome Età Media-------------------------Alice 16 8.5Bob 15 7.0Carlo 17 9.2