Introduzione

Tutti i tipi di dati in Python, inclusi numeri interi e stringhe, sono oggetti. Spesso quando si scrive codice Python, è necessario convertire un tipo di dati in un altro. Ad esempio, per eseguire un'operazione matematica su un numero rappresentato come una stringa, deve essere convertito in un numero intero.

In questo tutorial, ti mostreremo come convertire una stringa Python in un numero intero.

Funzione int() in Python

La funzione integrata int() restituisce un oggetto intero decimale da un determinato numero o stringa. Prende la forma seguente:

int(x, base=10)

La funzione int() accetta due argomenti:

  • x - Stringa o numero da convertire in un numero intero.
  • base - Rappresenta il sistema numerico del primo argomento. Il suo valore può essere 0 e 2–36. Se non viene fornita alcuna base, il valore predefinito è 10 (numero intero decimale).

Di solito, i numeri interi sono espressi in esadecimale (base 16), decimale (base 10), ottale (base 8) o binaria (base 2).

Se l'argomento dato non può essere rappresentato come intero, la funzione genererà un'eccezione ValueError.

Convertire una stringa Python in numero intero

In Python, una 'stringa' è un elenco di caratteri che viene dichiarato usando le virgolette singole ('), doppie (") o triple (""").

Se una variabile che contiene solo numeri viene dichiarata mediante virgolette, il suo tipo di dati è impostato su String. Considera il seguente esempio:

days = "23"
type(days)

La funzione type() ci mostra che days è un oggetto String.

<type 'str'>

Proviamo a fare un'operazione matematica sulla variabile:

print(days+5)

Python genererà un errore di eccezione TypeError perché non è possibile eseguire un calcolo addizionale con stringa e numero intero:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'int' objects

Per convertire una rappresentazione in formato stringa di un numero intero decimale int, passare la stringa alla funzione int(), che restituisce un numero intero decimale:

days = "23"
<type 'int'>

Se ora provi a fare i calcoli, l'operazione di somma verrà eseguita correttamente:

print(days_int+5)
28

Se il numero include virgole, segnando migliaia, milioni, ecc., È necessario rimuovere le virgole prima di passare il numero alla funzione int():

total = "1,000,000"
1000000

Quando si convertono stringhe che rappresentano numeri interi in diversi sistemi di numerazione, assicurarsi di utilizzare il corretto base.

Ad esempio, nel sistema esadecimale, il numero 54732 è rappresentato come D5CF. Per convertirlo in un numero intero decimale è necessario utilizzare la base 16:

int("D5CF", 16)
54735

Se si passa la stringa D5CF alla funzione int() senza impostare una base, verrà generata un'eccezione ValueError:

int("D5CF")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'D5CF'

Conclusione

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