Skip to content

Convertire una stringa in un numero (int, float) in Python

Python

In Python, puoi ottenere una stringa str in un intero int e un numero in virgola mobile float con int() e float().

In questo articolo vengono descritti i seguenti contenuti.

  • Converti una stringa in int:int()
  • Converti una stringa in float:float()
  • Converti una stringa di notazione binaria, otale ed esadecimale in int
  • Converti una stringa di notazione esponenziale in float

Usa str() per un numero intero o in vir mobile in una stringa.

Puoi anche aggiungere un elenco di stringhe in un elenco di numeri. Vedi il seguente articolo.

Converti una stringa in int:int()

int() converte una stringa in un intero int.

print(int('100'))
print(type(int('100')))
# 100
# <class 'int'>

Una stringa contenente . o , genera un errore.

# print(int('1.23'))
# ValueError: invalid literal for int() with base 10: '1.23'

# print(int('10,000'))
# ValueError: invalid literal for int() with base 10: '10,000'

Una stringa separata da virgole può essere convertita cancellando , con replace() (sostituisci con la stringa vuota ”).

print(int('10,000'.replace(',', '')))
# 10000

Vedere il seguente articolo per sostituire().

Converti una stringa in float:float()

float() converte una stringa in un numero in virgola mobile float.

print(float('1.23'))
print(type(float('1.23')))
# 1.23
# <class 'float'>

È anche possibile una stringa senza la parte intera.

print(float('.23'))
# 0.23

Anche una stringa che rappresenta un numero intero viene convertita in un numero a virgola mobile float.

print(float('100'))
print(type(float('100')))
# 100.0
# <class 'float'>

Converti una stringa di notazione binaria, otale ed esadecimale in int

Se si passa un numero di base al secondo argomento di int(), una stringa viene trattata come binaria, otale ed esadecimale.

print(int('100', 2))
print(int('100', 8))
print(int('100', 16))
# 4
# 64
# 256

Se omesso, viene considerato decimale, come negli esempi precedenti.

print(int('100', 10))
print(int('100'))
# 100
# 100

Se la base è 0, viene convertita in base al prefisso della stringa (0b, 0o, 0x o 0B, 0O, 0X).

print(int('0b100', 0))
print(int('0o100', 0))
print(int('0x100', 0))
# 4
# 64
# 256

I prefissi e gli alfabeti esadecimali possono essere scritti sia in maiuscolo che in minuscolo.

print(int('FF', 16))
print(int('ff', 16))
# 255
# 255

print(int('0xFF', 0))
print(int('0XFF', 0))
print(int('0xff', 0))
print(int('0Xff', 0))
# 255
# 255
# 255
# 255

Per ulteriori informazioni sull’interconversione di stringhe binarie, ottali ed esadecimali e int, vedere l’articolo seguente.

Converti una stringa di notazione esponenziale in float

Una stringa di notazione esponenziale può essere convertita in float con float().

print(float('1.23e-4'))
print(type(float('1.23e-4')))
# 0.000123
# <class 'float'>

print(float('1.23e4'))
print(type(float('1.23e4')))
# 12300.0
# <class 'float'>

Puoi usare sia e che E.

print(float('1.23E-4'))
# 0.000123