Che si tratti di una query di database o dei risultati di operazioni matematiche, il metodo del formato stringa Python offre un modo più dinamico e accattivante per presentare i risultati a un utente.
Diamo un'occhiata a come funziona la funzione str.format() in Python. Scoprirai anche come utilizzare questo formato nei tuoi programmi.
La funzione Python str.format() ti consente di inserire i tuoi risultati ovunque in una stringa.
Funziona allocando spazio per i risultati all'interno della stringa utilizzando parentesi graffe. Quindi scrive il tuo output in quella posizione usando il metodo format() .
Le stringhe fuori dalla parentesi graffa sono ciò che chiami testi letterali.
La funzione str.format() accetta un valore e un identificatore di formato stringa opzionale.
Ecco come appare la sintassi generale:
str.format(value, format_spec)
Ora diamo un'occhiata ad esempi più pratici di come usare questo metodo stringa Python.
1. Inserisci un valore in una posizione specifica
Ecco un esempio di base di come inserire un valore in una stringa utilizzando il metodo str.format() :
Cost = 45 formattedMethod = "This good costs {} dollars only" print(formattedMethod.format(Cost)) Output: This good costs 45 dollars only
Il codice sopra è lo stesso di:
formattedMethod = "This good costs {} dollars only" print(formattedMethod.format(45)) Output: This good costs 45 dollars only
2. Inserisci più output in una stringa
Puoi anche inserire più risultati in una stringa. Ecco come:
y = 7*8 f = 5+5 g = 0 a = "The value of y is {}, while f is {}. Nobody can see {}".format(y, f, g) print(a) Output: The value of y is 56, while f is 10. Nobody can see 0
3. Usa le parentesi graffe di escape per posizionare gli output in parentesi dedicate
Se devi inserire uno dei risultati tra parentesi graffe, è facile. Hai solo bisogno di introdurre due parentesi graffe aggiuntive.
Ad esempio, supponiamo che tu voglia y in una parentesi graffa dedicata:
a = "The value of y is {{{}}}, while f is {}. Nobody can see {}".format(y, f, g) print(a) Output: The value of y is {56}, while f is 10. Nobody can see 0
4. Valori di output da un elenco
Puoi selezionare valori specifici da un elenco e inserirli in una stringa:
myList = [10, 2, 4, 6] print(("The first is {} and the third is {}").format(myList[0], myList[2])) Output: The first is 10 and the third is 4
Per evitare la ripetizione all'interno della parentesi .format() , puoi impostare l'identificatore di formato in modo che punti invece a una singola variabile.
Ecco come farlo:
myList = [10, 2, 4, 6] print(("The first is {yourList[0]} and the third is {yourList[2]}").format(yourList = myList)) Output: The first is 10 and the third is 4
L'istanza di cui sopra si applica anche ad altri esempi che abbiamo trattato in precedenza. Quindi, puoi giocare con loro usando questo trucco.
5. Inserisci valori da un dizionario
Allo stesso modo, come hai fatto nella sezione precedente, puoi usare il metodo str.format() per inserire un valore di dizionario in una stringa:
myDiction = {"Ten":10, "Two":2, "Four":4, "Six":6} print(("The first is {} and the third is {}").format(myDiction["Ten"], myDiction["Four"])) Output: The first is 10 and the third is 4
Correlati: Come convertire un elenco in un dizionario in Python
E se vuoi usare il trucco della sezione precedente:
myDiction = {"Ten":10, "Two":2, "Four":4, "Six":6} print(("The first is {Ten} and the third is {Four}").format(**myDiction)) Output: The first is 10 and the third is 4
Puoi anche scrivere il codice sopra come:
print(("The first is {d[Ten]} and the third is {d[Four]}").format(d=myDiction)) Output: The first is 10 and the third is 4
6. Inserisci l'output di una funzione in una stringa
Se vuoi mostrare l'output di una funzione in una stringa:
def difNums(a, b): if a > b: return a - b else: return return "You can't substract {} from {} using this function".format(a, b) print(("Hey there: {}").format(difNums(2, 6))) Output: Hey there: You can't substract 2 from 6 using this function
L'identificatore di formato ti consente di scegliere come viene visualizzato il tuo formato. Come accennato in precedenza, è un parametro opzionale fornito con str.format() .
Usando questa opzione, puoi allineare il tuo output, ridurre le stringhe lunghe, raggruppare gli output o arrotondare un numero intero a un numero specifico di cifre significative e anche di più.
Scriverai spesso gli identificatori di formato all'interno delle parentesi graffe. Ma puoi anche indicarli esplicitamente all'interno della parentesi .format() .
Andiamo avanti e vediamo alcuni dei suoi casi d'uso.
7. Allinea uscita stringa
Puoi usare il segno maggiore ( > ) per allineare un output di stringa a destra:
print("Hello {:>15}".format(12734589)) Output: Hello 12734589
Puoi anche allineare il testo al centro se lo desideri:
print("Hello {:^15}".format(12734589)) Output: Hello 12734589
Formattiamo ulteriormente l'output di cui sopra. Ad esempio, puoi includere caratteri di sottolineatura per vedere il riempimento su entrambi i lati dell'output della stringa:
print("Hello {:_^15}".format(12734589)) Output: Hello ___12734589____
Ma come accennato in precedenza, puoi indicare esplicitamente l' identificatore di formato come parametro all'interno di str.format() .
Quindi, il codice precedente assomiglia a questo in quel caso:
print("Hello {:{g}}".format(12734589, g = "_^15")) Output: Hello ___12734589____
Sentiti libero di riscrivere gli altri esempi usando l'opzione sopra.
Potresti anche voler restituire un numero particolare di cifre significative per un calcolo utilizzando il metodo .format() .
Il codice di esempio seguente, ad esempio, arrotonda il risultato dell'operazione matematica a un numero decimale significativo:
calcprofitPerc = ((45 - 20)/45)*100 formattedOutput = "Our profit on this is {profit: .1f}%" print(formattedOutput.format(profit = calcprofitPerc)) Output: Our profit on this is 55.6%
9. Tronca le stringhe lunghe
Sebbene troncare un testo possa sembrare poco pratico, non puoi dire dove potresti averne bisogno.
Ecco come tagliare parte dell'output della stringa utilizzando la funzione str.format() :
print(("Truncate this to the first 3 alphabets: {:.3}").format("idowuomisola")) Output: Truncate this to the first 3 alphabets: ido
10. Gruppo separato di numeri utilizzando un criterio
Puoi separare un gruppo di numeri utilizzando un trattino basso o una virgola:
print("Separated by underscore: {:{g}}".format(12734589, g="_")) print("Separated by comma: {:{g}}".format(12734589, g=",")) Output: Separated by underscore: 12_734_589 Separated by comma: 12,734,589
Correlati: Come dividere una stringa in Python
Inoltre, puoi specificare il gruppo di numeri che vuoi trattare usando la sua chiave:
print("First numbers by underscore: {0:{g}}".format(12734589, 123674, 662772, g="_")) print("Third numbers by comma: {2:{g}}".format(12734589, 123674, 662772, g=",")) Output: First numbers by underscore: 12_734_589 Third numbers by comma: 662,772
Uno dei modi in cui puoi far risaltare il tuo programma è il modo in cui presenti risultati e query. Indubbiamente, il metodo del formato stringa Python offre un modo più pulito per produrre risultati. A differenza del precedente metodo modulo delle vecchie versioni di Python, il nuovo formato di stringa introdotto in Python 3 è più leggibile e intuitivo.