Come convertire String in Int in Python (casting sicuro e basi)
Scopri come convertire una stringa in un numero intero in Python utilizzando la funzione int(). Gestisci gli errori in modo sicuro e converti i numeri da binario, ottale o esadecimale.
Panoramica
La conversione della rappresentazione di stringa di un numero in un numero intero effettivo è un'attività frequente nello sviluppo di applicazioni. Questo processo, spesso definito casting, è essenziale quando si ha a che fare con input grezzi dell'utente, leggendo file di configurazione, analizzando argomenti da interfacce a riga di comando o recuperando dati dal web. Poiché Python è un linguaggio fortemente tipizzato, non è possibile eseguire operazioni matematiche su rappresentazioni di numeri in formato stringa senza prima eseguirne il cast.
Il costruttore `int()` integrato di Python è lo strumento principale per questa conversione. Nella sua forma più semplice, passare una stringa numerica (come `"42"`) a `int()` restituisce il suo equivalente intero. Tuttavia, il passaggio di una stringa non numerica (come `"ciao"`) o di una stringa che rappresenta un numero a virgola mobile (come `"3.14"`) solleverà un `ValueError`. Per scrivere applicazioni robuste, è pratica standard racchiudere le operazioni di casting in un blocco "try-Exception" per gestire con garbo input imprevisti.
Oltre alla conversione standard in base 10, la funzione `int()` accetta un argomento `base` facoltativo. Ciò consente di analizzare facilmente stringhe che rappresentano numeri in diversi sistemi numerici, come binario (base 2), ottale (base 8) o esadecimale (base 16). Ad esempio, `int("1010", 2)` analizza correttamente la stringa binaria nell'intero decimale "10", rendendolo uno strumento versatile per la programmazione matematica specializzata o di livello inferiore.
Codice e output di esecuzione
Questo script dimostra la conversione di una stringa in un numero intero, la gestione delle eccezioni e la conversione di diverse rappresentazioni di base.
# 1. Standard base-10 conversion
num_str = "123"
num = int(num_str)
print(f"Standard conversion: {num} (Type: {type(num).__name__})")
# 2. Handling invalid input gracefully
invalid_str = "abc"
try:
result = int(invalid_str)
except ValueError:
print(f"Could not convert '{invalid_str}' to an integer.")
# 3. Converting from different bases (binary and hex)
binary_str = "1011"
hex_str = "ff"
print("Binary '1011' to decimal:", int(binary_str, 2))
print("Hex 'ff' to decimal:", int(hex_str, 16))Standard conversion: 123 (Type: int)
Could not convert 'abc' to an integer.
Binary '1011' to decimal: 11
Hex 'ff' to decimal: 255Implementazione passo dopo passo
- Passa la stringa numerica alla funzione incorporata int().
- Racchiudi le tue operazioni di casting in try...eccetto i blocchi ValueError per gestire formati non validi.
- Fornire un secondo argomento (ad esempio base=16) per convertire i valori di stringa scritti in altre basi.
Domande frequenti
Come posso convertire una stringa float come "12.34" in un numero intero?
Devi prima convertirlo in float, poi in int: int(float("12.34")). La chiamata a int("12.34") solleva direttamente un ValueError.
Come posso verificare se una stringa può essere convertita in sicurezza in un int?
Puoi utilizzare il metodo stringa .isdigit(), ma tieni presente che restituisce False per segni negativi o spazi bianchi. Un blocco try-eccetto è il modo più robusto.
Argomenti correlati
Impara le migliori tecniche di formattazione delle stringhe in Python. Confronta le moderne stringhe f, format() e la formattazione percentuale con esempi di codice.
Come gestire le eccezioni in PythonScopri come gestire le eccezioni in Python usando try, tranne, altro e infine blocchi. Scrivi codice Python privo di errori e resistente agli arresti anomali.
Risorse Python consigliate
Espandi le tue conoscenze con tutorial interattivi, foglietti illustrativi e confronti di codici correlati.
Stringhe Python
Padroneggiare la manipolazione delle stringhe in Python. Scopri metodi di stringa, sezioni, concatenazione e tecniche di formattazione con esempi di codice chiari ed eseguibili.
Foglio informativo sui metodi delle stringhe Python
Una guida di riferimento completa per la manipolazione delle stringhe Python. Padroneggia la formattazione, la ricerca, la divisione, la sostituzione e il controllo delle proprietà delle stringhe.
Decoratori Python e modello di progettazione del decoratore: le differenze chiave
Confronta i decoratori Python e il modello di progettazione del decoratore classico. Comprendere le differenze tra il wrapper di funzioni in fase di definizione e la composizione di oggetti dinamici di runtime con codice eseguibile.