Tabella dei contenuti: Mostra/Chiudi
Per concatenare stringhe e numeri in Python bisogna convertire il numero in stringa. In questo post andremo a vedere i diversi modi in cui è possibile effettuare questa conversione e concatenare i due valori.
Concatenare stringhe e numeri senza convertire le variabili
Python supporta la concatenazione delle stringhe tramite l'operatore +
.
In molti linguaggi di programmazione, se proviamo a concatenare una stringa con altre variabili primitive(int, float, etc..) di tipo diverso tra loro, è il linguaggio stesso che si occupa automaticamente di contertirle in stringa.
Tuttavia Python non lavora esattamente in questo modo, andiamo quindi a vedere cosa succede se andiamo a concatenare stringhe e numeri senza effettuare alcuna conversione di tipo.
In questo esempio abbiamo la variabile voto
che è un intero, mentre parola
è una stringa.
Provando a concatenare queste due variabili, essendo di tipo diverso tra loro, otterremo in output un eccezione di tipo TypeError
:
voto = 7
parola = "Voto: "
print(parola + voto)
#output
TypeError: can only concatenate str (not "int") to str
Usare str() per convertire numeri in stringa
Un modo per convertire una qualsiasi variabile in stringa è tramite la funzione built-in str()
.
Per convertire un numero ti basterà infatti chiamare str(variabile)
per ottenere la variabile convertita in stringa:
voto = 7
print(type(voto))
voto = str(voto)
print(type(voto))
#output
<class 'int'>
<class 'str'>
Come puoi vedere, inizialmente la funzione type()
ci dice che il tipo della variabile è un intero, mentre dopo aver usato str()
, possiamo vedere che è stata convertita in stringa.
Ora possiamo quindi andare a concatenare con successo stringhe e numeri in questo modo tramite str():
voto = 7
stringa = "Voto: " + str(voto)
print(stringa)
#output
Voto: 7
Usare la funzione format()
Un altro modo per concatenare stringhe e numeri in python è tramite la funzione format()
.
A differenza di str()
, format()
favorisce una maggior leggibilità del codice e quindi potrebbe essere una soluzione migliore nel caso si dovessero concatenare più variabili per volta.
nome = "Luca"
materia = "informatica"
voto = 5
stringa = "{0} ha preso {1} in {2}.".format(nome, voto, materia)
print(stringa)
#output
Luca ha preso 5 in informatica.
.
Usare le f-strings (Python 3.6)
Dalla versione di Python 3.6 in poi, sono state introdotte le cosiddette f-strings
.
Le f-strings
in python hanno un comportamento molto simile a format()
, ma puntano ad uno stile ancora più minimale, ecco un esempio:
nome = "Marco"
materia = "matematica"
voto = 10
stringa = f"{nome} ha preso {voto} in {materia}."
print(stringa)
#output
Marco ha preso 10 in matematica.
Nota che per utilizzare le f-strings
dovrai precedere il valore della stringa dalla keyword f
, proprio come nel codice qui sopra.
Conclusione
Questi erano i tre modi più utilizzati e più semplici per concatenare stringhe e numeri in Python.
Spero di esserti stato di aiuto in qualche modo e buona programmazione!