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!


Condividi sui Social