Formattazione Delle Stringhe
Formattazione delle Stringhe in Python¶
Obiettivi della Lezione¶
Al termine di questa lezione, sarai in grado di:
- Comprendere l’importanza della formattazione delle stringhe in Python.
- Utilizzare metodi di formattazione base (
%
operator). - Applicare il metodo
str.format()
per formattare stringhe in modo flessibile. - Utilizzare le f-string (formatted string literals) introdotte in Python 3.6 per una formattazione efficiente.
- Gestire la formattazione di numeri, date e altre tipologie di dati all’interno delle stringhe.
Introduzione¶
La formattazione delle stringhe è un aspetto fondamentale nella programmazione in Python, soprattutto quando si tratta di presentare dati all’utente in modo chiaro e leggibile. Che tu stia costruendo un semplice messaggio o generando un report complesso, saper formattare correttamente le stringhe ti permetterà di controllare esattamente come i tuoi dati vengono visualizzati.
Spiegazione Teorica¶
Python offre diversi metodi per formattare le stringhe, ognuno con le proprie caratteristiche e casi d’uso. I principali metodi sono:
- Operatore
%
(stile vecchio) - Metodo
str.format()
- f-string (formatted string literals)
1. Operatore %
(stile vecchio)¶
Questo è il metodo di formattazione originale di Python, simile alla funzione printf
del linguaggio C.
Sintassi base:
"formato stringa" % valori
Esempio:
nome = "Alice"
eta = 30
testo = "Mi chiamo %s e ho %d anni." % (nome, eta)
print(testo)
Mi chiamo Alice e ho 30 anni.
2. Metodo str.format()
¶
Introdotto in Python 2.6, offre una sintassi più potente e flessibile.
Sintassi base:
"{} e {}".format(valore1, valore2)
È possibile utilizzare indici o nomi per i placeholder:
"{0} e {1}".format(valore1, valore2)
"{nome} ha {anni} anni.".format(nome="Alice", anni=30)
3. f-string (formatted string literals)¶
Introdotte in Python 3.6, le f-string permettono di inserire direttamente le espressioni all’interno delle stringhe con una sintassi concisa.
Sintassi base:
f"Testo {espressione}"
Esempio:
nome = "Alice"
eta = 30
testo = f"Mi chiamo {nome} e ho {eta} anni."
print(testo)
Mi chiamo Alice e ho 30 anni.
# Esempio base
nome = "Marco"
eta = 25
print("Mi chiamo %s e ho %d anni." % (nome, eta))
Mi chiamo Marco e ho 25 anni.
Spiegazione:
%s
è un placeholder per una stringa.%d
è un placeholder per un intero.
Utilizzo di str.format()
¶
# Placeholder posizionali
print("Mi chiamo {} e ho {} anni.".format(nome, eta))
# Placeholder con indici
print("Mi chiamo {0} e ho {1} anni. {0} è uno studente.".format(nome, eta))
# Placeholder con nomi
print("Mi chiamo {nome} e ho {eta} anni.".format(nome=nome, eta=eta))
Mi chiamo Marco e ho 25 anni. Mi chiamo Marco e ho 25 anni. Marco è uno studente. Mi chiamo Marco e ho 25 anni.
Utilizzo delle f-string¶
print(f"Mi chiamo {nome} e ho {eta} anni.")
Mi chiamo Marco e ho 25 anni.
Le f-string supportano anche espressioni e formattazioni:
print(f"L'anno prossimo avrò {eta + 1} anni.")
# Formattazione di numeri decimali
pi = 3.1415926535
print(f"Il valore di π è approssimativamente {pi:.4f}.")
L'anno prossimo avrò 26 anni. Il valore di π è approssimativamente 3.1416.
Spiegazione:
{pi:.4f}
formatta la variabilepi
mostrando solo due cifre decimali.
Esercizi Interattivi¶
Esercizio 1: Saluto Personalizzato¶
Obiettivo: Chiedi all’utente il suo nome e stampi un saluto personalizzato utilizzando le f-string.
Istruzioni:
- Usa la funzione
input()
per ottenere il nome dell’utente. - Utilizza un f-string per creare il messaggio di saluto.
- Stampa il messaggio.
Soluzione:
nome = input("Inserisci il tuo nome: ")
print(f"Ciao, {nome}! Benvenuto nel corso di Python.")
Inserisci il tuo nome: Marco Ciao, Marco! Benvenuto nel corso di Python.
Esercizio 2: Calcolo dell’Area di un Cerchio¶
Obiettivo: Calcola l’area di un cerchio dato il raggio inserito dall’utente e mostra il risultato con due cifre decimali.
Istruzioni:
- Chiedi all’utente di inserire il raggio.
- Calcola l’area (Area = π * raggio^2).
- Utilizza
math.pi
per il valore di π. - Stampa il risultato formattato.
Soluzione:
import math
raggio = float(input("Inserisci il raggio del cerchio: "))
area = math.pi * raggio ** 2
print(f"L'area del cerchio è {area:.2f} m^2.")
Inserisci il raggio del cerchio: 3 L'area del cerchio è 28.27 m^2.
Per rappresentare correttamente l’elevazione al quadrato, si può utilizzare il simbolo Unicode ²
(corrispondente a u00B2
in Python) invece di ^2
. Questo permette una visualizzazione più chiara e formattata.
print(f"L'area del cerchio è {area:.2f} mu00B2.")
L'area del cerchio è 28.27 m².
Buone Pratiche e Consigli¶
- Preferisci le f-string per Python 3.6 e successivi: Sono più leggibili e performanti.
- Usa la formattazione per migliorare la leggibilità: Formatta numeri decimali, date e altri dati per rendere l’output più chiaro.
- Mantieni il codice pulito: Evita formattazioni complesse all’interno delle stringhe; considera di elaborare i dati prima.
Conclusione¶
La formattazione delle stringhe è uno strumento potente che permette di controllare esattamente come i tuoi dati vengono presentati. Dall’uso delle f-string all’applicazione di specifici formati per numeri e date, Python offre diverse opzioni per soddisfare le tue esigenze. Padroneggiare questi metodi migliorerà la qualità del tuo codice e la chiarezza dell’output prodotto.
Risorse Aggiuntive¶
- Documentazione Ufficiale Python:
- Libro Consigliato: Python Crash Course di Eric Matthes
- Video Tutorial:: Strings – Working with Textual Data