Il metodo format in Python
Nel linguaggio Python il metodo format() mi consente la formattazione dei dati in una stringa e la costruzione di maschere di visualizzazione.
stringa.format(x1,x2,...)
I parametri della funzione format sono i valori da inserire nei relativi campi della stringa.
- Come formattare una stringa in Python. Per formattare una stringa posso usare due metodi.
- La formattazione per posizione
- La formattazione con segnaposto nominali
La formattazione per posizione
Come prima cosa, inserisco in una stringa dei segnaposto racchiusi tra parentesi graffe.
A ogni segnaposto assegno un parametro numerico o alfanumerico per identificarlo.
stringa="E meglio {0} oppure {1}?"
Poi stampo la stringa con il metodo format() indicando il valore dei due parametri tra parentesi.
Ogni valore è separato dagli altri tramite una virgola.
print(stringa.format("la pizza", "il gelato"))
Il primo parametro "la pizza" è assegnato al primo segnaposto {0}.
Il secondo parametro "il gelato" è assegnato al secondo segnaposto {1}.
Nota. Non è importante il valore numerico del segnaposto ma soltanto la posizione, ossia l'ordine di presentazione nella stringa. Quindi, se {1} venisse prima di {0} sarebbe il primo segnaposto.
Il metodo format() costruisce la stringa, sostituendo i segnaposto con i relativi valori, e la funzione print la visualizza sulla console.
E meglio la pizza oppure il gelato?
Posso ripetere un segnaposto nella stringa?
Si, Uno stesso segnaposto può anche essere ripetuto più volte in una stringa.
stringa="E meglio {0} oppure {1}? Secondo me scegli {0}"
In questo caso l'output dell'esempio precedente diventa.
E meglio la pizza oppure il gelato? Secondo me scegli la pizza.
La formattazione con i nomi
Oltre ai segnaposto per posizione, posso usare i segnaposto per nome.
In questo caso utilizzo come segnaposto dei nomi mnemonici che identificano in modo univoco un campo all'interno della stringa.
stringa="Sono le {ore} e {minuti}"
Al momento della visualizzazione, assegno i valori ai segnaposto tramite il metodo format().
In questo caso l'ordine di presentazione non è importante.
print(stringa.format(minuti="un quarto",ore=10))
Al segnaposto {minuti} assegno la stringa alfanumerica "un quarto".
Al segnaposto {ore} assegno il valore numerico intero 10.
Il metodo format() costruisce la stringa e la funzione print() la stampa a video
Sono le 10 e un quarto
E così via
- Nota. Il metodo format mi permette anche di leggere gli attributi di un oggetto in una classe.
- Come leggere gli attributi di una classe con il metodo format
- Come formattare i segnaposto della maschera
- Come creare una maschera di visualizzazione con una lista
- Come formattare i dati di un dizionario