Il casting in Python è un processo che consente di convertire un tipo di dato in un altro. Questo può essere utile in situazioni dove hai bisogno di lavorare con diversi tipi di dati all’interno del tuo codice. In Python, ci sono due tipi principali di casting: il casting implicito e il casting esplicito. In questo articolo esploreremo entrambi, insieme alle funzioni di casting più comuni.
Casting implicito (coercizione di tipo)
Il casting implicito avviene quando Python converte automaticamente un tipo di dato in un altro senza che tu debba intervenire. Questo succede in situazioni dove la conversione è considerata “sicura” e non porta alla perdita di dati. Un esempio classico è la conversione tra interi e numeri a virgola mobile.
x = 5 # Intero
y = 2.5 # Float
z = x + y # Python converte automaticamente x in float
print(z) # Output: 7.5
In questo esempio, Python converte automaticamente x
da intero a float per eseguire correttamente l’operazione matematica con y
.
Casting esplicito (conversione di tipo)
Il casting esplicito è necessario quando Python non può convertire automaticamente i tipi di dati o quando desideri controllare manualmente il processo di conversione. Questo avviene tramite l’uso di funzioni specifiche che convertono un tipo di dato in un altro. Vediamo un esempio:
x = 5.5 # Float
y = int(x) # Conversione esplicita a intero
print(y) # Output: 5
In questo caso, usiamo la funzione int()
per convertire il valore x
da float a intero, eliminando la parte decimale.
Funzioni di casting comuni
In Python, ci sono diverse funzioni che ti permettono di effettuare il casting tra vari tipi di dati. Ecco le più comuni:
- int(): Converte un numero o una stringa in un intero.
- float(): Converte un numero o una stringa in un numero a virgola mobile.
- str(): Converte un valore in una stringa.
- bool(): Converte un valore in un booleano (True o False).
Nota sulla possibile perdita di informazioni:
Quando utilizzi il casting esplicito, è importante tenere a mente che potrebbe verificarsi una perdita di dati. Ad esempio, convertire un numero float in un intero comporta la perdita della parte decimale.
x = 9.99
y = int(x) # La parte decimale viene persa
print(y) # Output: 9
In questo caso, la parte .99
viene eliminata quando convertiamo il float in intero. Per questo motivo, bisogna usare il casting esplicito con attenzione per evitare perdite di dati importanti.