Introduzione

Python ha diversi tipi di dati incorporati. A volte, quando si scrive codice Python, potrebbe essere necessario convertire un tipo di dati in un altro. Ad esempio, concatena una stringa e un numero intero, prima dovrai convertire il numero intero in una stringa.

Questo articolo spiega come convertire un intero in una stringa (int to string) con Python.

Funzione str() in Python

In Python, possiamo convertire diversi tipi di dati in stringhe usando la funzione incorporata str().

La funzione str() restituisce una versione stringa di un determinato oggetto. Assume le seguenti forme:

class str(object='')
class str(object=b'', encoding='utf-8', errors='strict')
  • object - Oggetto da convertire in una stringa.

La funzione accetta tre argomenti, ma di solito, quando converti un numero intero in una stringa, passerai un solo argomento (object) alla funzione.

Convertire un numero intero in una stringa

Per convertire il numero intero 23 in una versione in stringa, è sufficiente passare il numero nella funzione str():

days = "23"
str(23)
type(days)
'23'
<class 'str'>

Le virgolette intorno al 23 indicano che il numero non è un intero ma è un oggetto di tipo stringa. Inoltre, la funzione type() mostra che l'oggetto è una stringa.

In Python, le stringhe vengono dichiarate utilizzando virgolette singole ('), doppie (") o triple (""").

Concatenare di stringhe e numeri interi

Proviamo a concatenare stringhe e interi usando l'operatore + e stampiamo il risultato:

number = 6
lang = "Python"
quote = "There are " + number + " relational operators in " + lang + "."
print(quote)

Python genererà un errore di eccezione TypeError perché non può concatenare stringhe e numeri interi:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can only concatenate str (not "int") to str

Per convertire il numero intero in una stringa, passare il numero intero alla funzione str():

number = 6
lang = "Python"
quote = "There are " + str(number) + " relational operators in " + lang + "."
print(quote)

Ora, quando esegui il codice, verrà eseguito correttamente:

There are 6 relational operators in Python.

Esistono anche altri modi per concatenare stringhe e numeri.

La classe stringa incorporata fornisce un metodo format() che formatta una determinata stringa utilizzando un insieme arbitrario di argomenti posizionali e di parole chiave:

number = 6
lang = "Python"
quote = "There are {} relational operators in {}.".format(number, lang)
print(quote)
There are 6 relational operators in Python.

In Python 3.6 e versioni successive, puoi usare f-string, che sono stringhe letterali con prefisso 'f' contenenti espressioni all'interno di parentesi graffe:

number = 6
lang = "Python"
quote = f"There are {number} relational operators in {lang}."
print(quote)
There are 6 relational operators in Python.

Infine, puoi usare il vecchio %-formatting:

number = 6
lang = "Python"
quote = "There are %s relational operators in %s." % (number, lang)
print(quote)
There are 6 relational operators in Python.

Conclusione

In Python, puoi convertire un intero in una stringa usando la funzione str().