Diversi modi di formattare le stringhe in Python: i 3 metodi migliori
Pubblicato: 2021-02-23La formattazione delle stringhe è una caratteristica essenziale nei linguaggi di programmazione per formattare o inserire valori e posizioni specificati dall'utente nelle stringhe. Il linguaggio C aveva un modo per farlo che potresti conoscere se hai una certa esperienza con il linguaggio C. Python, tuttavia, non supporta 1, non 2, ma 3 modi diversi per eseguire la formattazione delle stringhe. Ogni modo ha i suoi vantaggi e svantaggi che vedremo in questo tutorial. Vedremo anche quale dei 3 metodi è il più utilizzato ed efficiente.
Impara i corsi di scienza dei dati online dalle migliori università del mondo. Guadagna programmi Executive PG, programmi di certificazione avanzati o programmi di master per accelerare la tua carriera.
Alla fine di questo tutorial, saprai quanto segue:
- Diversi modi di formattazione delle stringhe
- Il loro utilizzo con esempi
- Qual è il modo più preferito
Sommario
Diversi modi di formattazione delle stringhe
Python ha ricevuto più aggiornamenti per migliorare la formattazione delle stringhe. Esaminiamo ciascuno di essi uno per uno.
Metodo 1: formattazione della stringa in stile C
Python include il vecchio metodo di formattazione delle stringhe utilizzando caratteri speciali per ogni tipo di dati. Questo buon vecchio metodo di formattazione delle stringhe è stato adottato dal linguaggio C ed è ancora molto efficace. Per formattare le stringhe viene utilizzato un identificatore di formato stringa "%" seguito da un carattere dedicato per ciascun tipo di dati.
Facciamo un piccolo esempio per capire questo:
numero = 8 nome = "uomo rosa" print("Il nome è %s e il numero è %d" %( nome, num)) |
#Produzione >> "Il nome è Pinkman e il numero è 8" |
Come puoi vedere, l'identificatore di formato %s è stato utilizzato per formattare il nome della stringa e %d è stato utilizzato per formattare il numero intero. Allo stesso modo, esiste anche un identificatore di formato per un float. Controlliamo anche quello.
num = 4,32 lis = [ 1 , 3 , 5 ] print( “list is %s e float is %f” %(lis, num)) |
#Produzione >> l'elenco è [ 1 , 3 , 5 ] e il float è 4.320000 |
Nell'esempio sopra, utilizzo l'identificatore di formato %f per formattare il valore float. Due cose da notare qui. Uno, il valore float viene stampato come 4,320000 e non solo 4,32. Perchè così? Questo perché Python per impostazione predefinita usa una precisione di 6 punti decimali per i float. In secondo luogo, ho stampato un elenco utilizzando l'identificatore di formato stringa. Non significa che l'identificatore di formato %s possa accettare qualsiasi tipo di dati. Lo converte semplicemente in una stringa e lo stampa. Quindi l'elenco che viene stampato è essenzialmente una stringa e non un elenco.
Va bene, quindi come specificare la precisione di quanti punti decimali è richiesta?
print(“list is %s e float con una precisione di 2 punti è %.2f” %(lis, num)) |
#Produzione >> l'elenco è [ 1 , 3 , 5 ] e float è 4.32 |
Un altro punto da notare qui è che dobbiamo fornire le variabili nell'ordine in cui sono usate nella stringa. Se l'ordine viene modificato, l'output viene modificato di conseguenza. Un'alternativa per non richiederci di dare le variabili nel giusto ordine ogni volta è usare la formattazione delle stringhe in un modo leggermente diverso.
print(“list is %(a)s e float is %(b)f” %{“b”: num, “a”: lis}) |
#Produzione >> l'elenco è [ 1 , 3 , 5 ] e il float è 4.320000 |
E come vedi, questo è molto ingombrante da scrivere.
Quindi, solo per riassumere, i 3 specificatori di formato più utilizzati sono:
- %s per le stringhe
- %d per numeri interi
- %.<accuratezza decimale>f per float
Metodo 2: formattazione della stringa di nuovo stile
Python 3 ha introdotto un modo migliore per eseguire la formattazione delle stringhe utilizzando un metodo format() sulle stringhe. Un segnaposto viene utilizzato inserendo parentesi graffe e il metodo format contiene le variabili che devono essere inserite in quelle posizioni nella stringa. Diamo un'occhiata a un piccolo esempio per capirlo.
nome = “skyler” print("Ciao, mi chiamo {}".format(nome)) |
#Produzione >> Ciao, mi chiamo skyler |
Questo è molto meglio della formattazione vecchio stile che abbiamo visto sopra. Le parentesi graffe fungono da segnaposto per il nome della variabile che contiene una stringa. Si noti che con il metodo format non è necessario specificare il tipo di dati della variabile come facevamo nella formattazione vecchio stile.
Un esempio anche con i numeri:
numero = 3 int = 4,34 nome = “jessy” print( "Ciao, mi chiamo {}, il numero è {} e float è {}" .format(name, num, int)) |
#Produzione >> Ciao, mi chiamo jessy , il numero è 3 e il float è 4.34 |
Pulito! Come puoi vedere, è necessario che le variabili vengano passate al metodo format nell'ordine in cui sono state utilizzate nella stringa. Un altro modo per utilizzare il metodo format non richiedendoci di passare tutte le variabili nell'ordine corretto:
print("Ciao, mi chiamo {name}, il numero è {num} e float è {int}".format(int=int, num=num , name=name)) |
#Produzione >> Ciao, mi chiamo jessy , il numero è 3 e il float è 4.34 |
Nell'esempio sopra, vediamo che quando le variabili sono menzionate esplicitamente nei segnaposto, non è più necessaria la necessità di passarle al metodo format nell'ordine corretto.
Possiamo anche passare la posizione della variabile nei segnaposto per tenerne traccia meglio.
print("Ciao, mi chiamo {0}, il numero è {1} e il float è {2}".format(name, num, int)) |
#Produzione >> Ciao, mi chiamo jessy , il numero è 3 e il float è 4.34 |
Metodo 3: utilizzo di F-Strings
Introdotto in Python 3.6, f-strings è il modo più semplice ed efficiente per eseguire la formattazione delle stringhe. Questi sono anche chiamati letterali stringa formattati. Usano la f letterale all'inizio della stringa per dire a Python di trattarla come una stringa formattata. I segnaposto contengono le variabili effettive che devono essere messe in quella posizione.
Diamo un'occhiata a un esempio.
nome = “heisenberg” fattura = 100.43print(f"Il nome è {nome} e la fattura è {fattura}") |
#Produzione >> Il nome è heisenberg e il conto è 100,43 |
Questo è stato abbastanza facile. Inoltre, possiamo anche inserire direttamente le espressioni invece delle variabili.
a = 5 b = 8 print( f”La somma è {a+b} “ ) |
#Produzione >> La somma è 13 |
Possiamo anche chiamare direttamente le funzioni e ottenere il loro output nei letterali stringa.
print( f”Il nome è {name.upper()} “ ) |
#Produzione >> Il nome è HEISENBERG |
Inoltre, possiamo usare le f stringhe anche per restituire direttamente il valore dalle funzioni.
def combinatore(nome, età, denaro): return f"{name} è maggiorenne {age} e ha uno stipendio {money}" |
Saul Goodman ha 45 anni e ha uno stipendio di 2000000 |
Come si vede, quando passiamo le funzioni direttamente ai segnaposto, esso chiama le funzioni e inserisce direttamente gli output tra parentesi graffe. Chiaramente, questo metodo di formattazione delle stringhe è il più efficiente e facile da scrivere.
Checkout: Domande e risposte sull'intervista Python
Prima che tu vada
La formattazione delle stringhe è un'attività normale e il modo in cui Python ha introdotto il metodo format e le stringhe f lo rende molto semplice per le persone che lavorano con Python. Le f-string sono il modo più utilizzato e preferito per lavorare con la formattazione delle stringhe in quanto semplificano la scrittura e la manutenzione. Inoltre, rende anche il codice più Pythonico! Sotto il cofano, le stringhe f usano il protocollo __format__. Il letterale f è solo zucchero sintattico che Python offre ai suoi utenti per semplificarci la scrittura della formattazione delle stringhe.
Se sei curioso di conoscere la scienza dei dati, dai un'occhiata al programma Executive PG in Data Science di IIIT-B e upGrad, creato per i professionisti che lavorano e offre oltre 10 casi di studio e progetti, workshop pratici pratici, tutoraggio con esperti del settore, 1 -on-1 con mentori del settore, oltre 400 ore di apprendimento e assistenza al lavoro con le migliori aziende.
1. Il metodo string format() integrato di Python trasforma una stringa fornita in un output più utile. La funzione format() in Python3 è uno dei metodi di formattazione delle stringhe che consente sostituzioni multiple e formattazione dei valori. Il metodo format() utilizza la formattazione posizionale per concatenare gli elementi all'interno di una stringa. Aggiungi un argomento extra al tuo metodo di stampa in Python 3 per dire al computer che non vuoi che la stringa successiva sia su una nuova riga. Considera il seguente scenario. 1. Sono oggetti stringa se acquisiamo un valore float tramite l'input dell'utente tramite il terminale e leggendolo da un file. Di conseguenza, dobbiamo convertirli esplicitamente in float per eseguire operazioni necessarie come addizione, moltiplicazione e così via.Quali metodi di formattazione in Python 3 consentono sostituzioni multiple e formattazione dei valori?
2. La stringa può essere formattata utilizzando numerose coppie di parentesi graffe. Se è necessaria un'altra sostituzione di variabile in una stringa lunga, è possibile aggiungere il secondo set di parentesi graffe e passare il secondo valore alla procedura.
3. La funzione format() in Python accetta un numero qualsiasi di parametri. Tuttavia, è principalmente separato nei seguenti due tipi di parametri.
un. I parametri posizionali sono un elenco di parametri che possono essere recuperati inserendo l'indice del parametro tra parentesi graffe (indice).
B. Parametri delle parole chiave: questo è un elenco di parametri chiave=valore a cui è possibile accedere utilizzando la chiave del parametro tra parentesi graffe.
4. Il metodo format() restituisce una stringa che è stata formattata. La funzione format() legge il tipo di argomenti forniti e li formatta in base ai codici di formato nella stringa. Come si stampa senza una nuova riga in Python 3?
print('Benvenuto!', end = ')
In questo caso, qualsiasi ulteriore funzione di stampa apparirà sulla stessa riga. Possiamo convertire string in float in Python?
2. Il metodo float() in Python può essere utilizzato per convertire una stringa in un float. È una funzione incorporata per convertire un numero a virgola mobile in un oggetto. Internamente, la funzione float() chiama la funzione __float__() dell'oggetto fornito.