Articolo originale: Python Convert String to Int – How to Cast a String in Python

Mentre programmi, spesso avrai bisogno di cambiare tipi di dati.

La possibilità di convertire un tipo di dato in un altro offre una grande flessibilità quando si lavora con delle informazioni.

Esistono diversi modi integrati per convertire i tipi nel linguaggio di programmazione Python.

In questo articolo, imparerai come convertire una stringa in un numero intero.

Iniziamo!

Tipi di dati in Python

Python supporta molteplici tipi di dati.

I tipi di dati vengono utilizzati per specificare, rappresentare e classificare le diverse tipologie di dati esistenti e utilizzati nei programmi.

Inoltre, sono disponibili diverse operazioni con diversi tipi di dati – un'operazione disponibile per un tipo di dati, spesso non è disponibile per un altro.

Un esempio di tipo di dati sono le stringhe.

Le stringhe sono sequenze di caratteri utilizzate per trasmettere informazioni di testo. Sono racchiuse tra virgolette singole o doppie, in questo modo:

frase_prefe = "Hello world!"

#Hello world! è una stringa racchiusa tra virgolette doppie

Gli int, o interi, sono numeri interi.

Sono usati per rappresentare dati numerici e puoi eseguire qualsiasi operazione matematica (come addizione, sottrazione, moltiplicazione e divisione) quando lavori con i numeri interi.

I numeri interi non sono racchiusi tra virgolette singole o doppie

numero_prefe = 7

#7 è un int
#"7" non sarebbe un int ma una stringa, anche se è un numero.
#Questo a causa delle virgolette tra cui è racchiuso

Conversione di tipi di dati

A volte, quando memorizzi dati o ricevi input da un utente in un tipo, dovrai manipolare ed eseguire diversi tipi di operazioni su quei dati.

Dato che ogni tipo di dati può essere manipolato in modi differenti, spesso dovrai convertirlo.

La conversione di un tipo di dati in un altro è anche chiamata conversione di tipo o semplicemente conversione. Molti linguaggi offrono operatori di conversione integrati per svolgere questa operazione  – convertire in modo esplicito un tipo in un altro.

Come convertire una stringa in un numero intero in Python

Per convertire una stringa in un numero intero in Python, utilizza la funzione integrata int().

La funzione prende come parametro la stringa iniziale che vuoi convertire e restituisce l'intero equivalente al valore passato.

La sintassi generale è: int("str").

Prendiamo il seguente esempio, dove c'è la versione stringa di un numero:

#versione stringa del numero 7
print("7")

#controlla il tipo di dato con il metodo type():
print(type("7"))

#output

#7
#<class 'str'>

Per convertire la versione stringa del numero nell'intero equivalente, usa la funzione int(), in questo modo:

#converti la stringa nel tipo di dato int
print(int("7"))

#controlla il tipo di dato con il metodo type()
print(type(int("7")))

#output

#7
#<class 'int'>

Un esempio pratico di conversione di una stringa in un int

Supponiamo di voler calcolare l'età di un utente, partendo da un input. L'input sarà sempre in formato stringa.

Quindi, anche se l'utente digita un numero, quel numero sarà di <class 'str'>.

Quindi, se vuoi eseguire operazioni matematiche su quell'input, come sottrarlo da un altro numero, riceverai un errore perché non puoi eseguire operazioni matematiche sulle stringhe.

Dai un'occhiata all'esempio qui sotto per vederlo in azione:

anno_corrente = 2022

#chiedi all'utente di digitare il suo anno di nascita
anno_nascita_utente_input = input("Qual è il tuo anno di nascita? ")

#sottrai l'anno di nascita che l'utente ha inserito dall'anno corrente
eta_utente = anno_corrente - anno_nascita_utente_input

print(eta_utente)

#output

#Qual è il tuo anno di nascita? 1993
#Traceback (most recent call last):
#  File "demo.py", line 9, in <module>
#    eta_utente = anno_corrente - anno_nascita_utente_input
#TypeError: unsupported operand type(s) for -: 'int' and 'str'

L'errore indica che la sottrazione non può essere eseguita tra un int e una stringa.

Puoi controllare il tipo di dato dell'input usando il metodo type():

anno_corrente = 2022

#chiedi all'utente di digitare il suo anno di nascita
anno_nascita_utente_input = input("Qual è il tuo anno di nascita? ")

print(type(anno_nascita_utente_input))

#output

#Qual è il tuo anno di nascita? 1993
#<class 'str'>

Il modo per aggirare questo problema e non commettere errori è convertire l'input dell'utente in un numero intero e memorizzarlo all'interno di una nuova variabile:

anno_corrente = 2022

#chiedi all'utente di digitare il suo anno di nascita
anno_nascita_utente_input = input("Qual è il tuo anno di nascita? ")

#converti l'input dell'utente in un int usando la funzione int() e memorizzalo in una nuova variabile
anno_nascita_utente = int(anno_nascita_utente_input)

#sottrai l'anno di nascita che l'utente ha inserito dall'anno corrente
eta_utente = anno_corrente - anno_nascita_utente_input

print(eta_utente)

#output

#Qual è il tuo anno di nascita? 1993
#29

Conclusione

E il gioco è fatto: ora sai come convertire le stringhe in numeri interi in Python!

Se vuoi saperne di più sul linguaggio di programmazione Python, freeCodeCamp ha una Certificazione Python per iniziare.

Comincerai con i fondamenti e passerai ad argomenti più avanzati come strutture di dati e database relazionali. Alla fine, costruirai cinque progetti per mettere in pratica ciò che hai imparato.

Grazie per la lettura e buona programmazione!