Guida a Python - Corso base - Capitolo 8: conversioni (casting) tra tipi di dati differenti
Capitolo 8: Conversioni (casting) tra tipi di dati differenti.
Python permette grande flessibilità nell'utilizzo di vari tipi di dato, tuttavia non è possibile effettuare operazioni tra tipi diversi senza un casting (conversione forzata); ad esempio, scrivere:
>>> elemento1 = 'a'
>>> elemento2 = 4
>>> somma = elemento1 + elemento2
genererà un errore:
Traceback (most recent call last): File "<pyshell#26>", line 1, in <module> somma = elemento1+elemento2 TypeError: cannot concatenate 'str' and 'int' objects
Il casting viene effettuato mediante funzioni specifiche; per i tipi primitivi, abbiamo ad esempio:
conversione a tupla; funziona solo con elementi "iterabili", come lo stringhe o le liste:
>>> elementoStringa = 'stringa' >>> convAtupla = tuple(elementoStringa) >>> convAtupla ('s', 't', 'r', 'i', 'n', 'g', 'a')
mentre con altri, come gli interi, genera errore:
>>> intero1 = 5 >>> convAtupla = tuple(intero1) Traceback (most recent call last): File "<pyshell#35>", line 1, in <module> convAtupla = tuple(intero1) TypeError: 'int' object is not iterable
conversione a lista; funziona solo con elementi "iterabili", per cui, ad esempio, non è possibile effettuare una conversione passando, come parametro, un intero:
>>> elementoIntero = 10 >>> convAlista = list(elementoIntero) Traceback (most recent call last): File "<pyshell#28>", line 1, in <module> convAlista = list(elementoIntero) TypeError: 'int' object is not iterable
mentre è possibile convertire delle stringhe in elementi separati (caratteri) appartenenti ad una list:
>>> elementoStringa = 'stringa' >>> convAlista = list(elementoStringa) >>> convAlista ['s', 't', 'r', 'i', 'n', 'g', 'a']
conversione a intero; funziona solo con numeri e stringhe, altrimenti genera errore:
Traceback (most recent call last): File "<pyshell#32>", line 1, in <module> convAintero = int(convAlista) TypeError: int() argument must be a string or a number, not 'list'
Per le varie funzioni di casting esistono anche molte altre forme, che consentono ad esempio conversioni tra numeri da intero ad esadecimale, ecc...
Per una trattazione completa, comunque, si rimanda alla documentazione ufficiale di Python.
|