Articoli

Python Tutorial: come fare una conversione di tipo di dato

L’uso flessibile e coerente delle variabili, in un linguaggio di programmazione, è un elemento fondamentale.

Un linguaggio di programmazione, dotato di strumenti per convertire un’informazione, diventa completo e utile.

In questo articolo vediamo come fare la conversione di tipo Python e alcune utili funzioni di conversione di tipo.

Tempo di lettura stimato: 13 minuti

Introduzione alla conversione di tipo in Python

Per ottenere informazioni in input da tastiera, dagli utenti, python mette a disposizione l’istruzione input().

Esempio:

value = input('Enter a value:')
print(value)

Quando esegui questo codice, ti verrà richiesto di inserire un input da Terminale:


Enter a value:

Se inserisci un valore, ad esempio un numero, il programma visualizzerà nuovamente (grazie alla print) quel valore:

Enter a value:100
100

La funzione input() restituisce sempre una stringa, non un numero intero.

L’esempio seguente richiede di inserire due valori di input: prezzo netto e aliquota fiscale. Successivamente, calcola l’imposta e visualizza il risultato sullo schermo:

price = input('Enter the price ($):')
tax = input('Enter the tax rate (%):')

tax_amount = price * tax / 100

print(f'The tax amount price is ${tax_amount}')

Quando esegui il programma e inserisci alcuni numeri:

Enter the price ($):100
Enter the tax rate (%):10

… riceverai il seguente errore:

Traceback (most recent call last):
File "main.py", line 4, in <module>
tax_amount = price * tax / 100
TypeError: can't multiply sequence by non-int of type 'str'

I valori di input sono stringhe, e quindi non è possibile applicare l’operatore di moltiplicazione.

Per risolvere questo problema, è necessario convertire le stringhe in numeri prima di eseguire i calcoli.

Per convertire una stringa in un numero, utilizzare la funzione int(). Più precisamente, la funzione int() converte una stringa in un numero intero.

L’esempio seguente utilizza la funzione int() per convertire le stringhe di input in numeri:

price = input('Enter the price ($):')
tax = input('Enter the tax rate (%):')

tax_amount = int(price) * int(tax) / 100
print(f'The tax amount is ${tax_amount}')

Se esegui il programma e inserisci alcuni valori, vedrai che funziona correttamente:


Enter the price ($):
100
Enter the tax rate (%):
10
The tax amount is $10.0

Altre funzioni di conversione di tipo

Oltre alle funzioni int(str), Python supporta altre funzioni di conversione di tipo. Di seguito sono riportati quelli più importanti per ora:

  • float(str)– convertire una stringa in un numero a virgola mobile.
  • bool(val)– convertire un valore in un valore booleano, e cioè True oppure False.
  • str(val)– restituisce la rappresentazione in formato stringa di un valore.

La funzione long() di Python 2 è stata deprecata in Python 3. Python 3 utilizza invece la funzione incorporata int(), che può gestire numeri interi arbitrariamente grandi.

Ottenere il tipo di un valore

Per ottenere il tipo di valore, si utilizza la funzione type(value). Per esempio:

> type(100)
<class 'int'>
> type(2.0)
<class 'float'>
> type('Hello')
<class 'str'>
> type(True)
<class 'bool'>

Come puoi vedere chiaramente dall’output:

  • Il numero 100 ha il tipo int.
  • Il numero 2.0 è di tipo float.
  • La stringa 'Hello' è di tipo str.
  • E il valore True è di tipo bool.

La funzione complex()

La funzione Python complex() viene utilizzata per creare un numero complesso combinando una parte reale e una parte immaginaria.

La parte reale di un numero complesso rappresenta la componente che si trova sulla linea numerica standard (l’asse orizzontale). È un numero reale regolare e può essere positivo, negativo o zero. Nella notazione matematica, se “z” è un numero complesso, la parte reale è indicata come “Re(z)”.

La parte immaginaria di un numero complesso rappresenta la componente che giace sull’asse immaginario (l’asse verticale). È un multiplo dell’unità immaginaria “i” (o j in Python), dove “i” è definita come la radice quadrata di “-1”. Nella notazione matematica, se “z” è un numero complesso, la parte immaginaria viene indicata come “Im(z)”.

La sintassi della funzione Python complex() è:

complex(real [,imag])

Questa funzione accetta due parametri opzionali:

  • reale − Rappresenta la parte reale del numero complesso. Se non fornito, il valore predefinito è 0.
  • imag (opzionale) − Rappresenta la parte immaginaria del numero complesso. Se non fornito, il valore predefinito è 0.

La funzione restituisce un numero complesso basato sulle parti reali e immaginarie fornite o una stringa che rappresenta un numero complesso.

Esempio

Nell’esempio seguente, stiamo utilizzando la funzione complex() per creare un numero complesso con una parte reale pari a “2” e una parte immaginaria pari a “3”:

real = 2
imaginary = 3
result = complex(real, imaginary)
print('The complex One value obtained is:',result)

imaginary = 0
result = complex(real, imaginary)
print('The complex Two value obtained is:',result)

real = 0
imaginary = 7
result = complex(real, imaginary)
print('The complex Three value obtained is:',result)

Di seguito è riportato l’output del codice precedente:

The complex One value obtained is: (2+3j)
The complex Two value obtained is: (2+0j)
The complex Three value obtained is: (0+7j)

La funzione repr()

La funzione Python repr() viene utilizzata per ottenere una rappresentazione di stringa di un oggetto.

Questa funzione è utile per scopi di debug e registrazione poiché fornisce una rappresentazione dettagliata e chiara di un oggetto rispetto alla funzione str(). Mentre str() viene utilizzato principalmente per creare stringhe leggibili, repr() fornisce una stringa che, quando passata alla funzione eval(), può ricreare l’oggetto originale.

La sintassi della funzione Python repr() è:

repr(x)

Questa funzione accetta un oggetto ‘x’ come parametro per il quale si desidera ottenere la rappresentazione della stringa.

Questa funzione restituisce una stringa che, se eseguita come codice Python, ricreerebbe l’oggetto originale.

Esempio

Nell’esempio seguente, utilizziamo la funzione repr() per ottenere la rappresentazione di stringa dell’oggetto stringa “Hello, World!”:

text = "Hello, BlogInnovazione!"
representation = repr(text)
print('The string representation obtained is:',representation)

number = 57
representation = repr(number)
print('The string representation obtained is:',representation)

my_list = [1, 2, 3]
representation = repr(my_list)
print('The string representation obtained is:',representation)

complex_num = complex(49, 57)
representation = repr(complex_num)
print('The string representation obtained is:',representation)

Di seguito è riportato l’output del codice precedente:

The string representation obtained is: 'Hello, BlogInnovazione!'

The string representation obtained is: 57

The string representation obtained is: [1, 2, 3]

The string representation obtained is: (49+57j)

La funzione eval()

La funzione eval() di Python è una funzione incorporata utilizzata per valutare una stringa come espressione Python e restituire il risultato. Prende una stringa contenente un’espressione Python valida come input, la analizza ed esegue il codice, restituendo infine il risultato dell’espressione.

La sintassi della funzione Python eval() è:

eval(expression, globals=None, locals=None)

Questa funzione accetta i seguenti parametri:

  • espression − Si tratta di una stringa che rappresenta un’espressione Python valida che si desidera valutare.
  • globals (opzionale) − Si tratta di un dizionario contenente variabili globali. Se non viene specificato o impostato su None, utilizza lo spazio dei nomi globals del chiamante.
  • locals (facoltativo) − Si tratta di un dizionario contenente variabili locali. Se non viene specificato o impostato su None, viene utilizzato lo spazio dei nomi locals del chiamante.

Questa funzione restituisce il risultato dell’espressione valutata.

Esempio

Nell’esempio seguente, stiamo usando la funzione eval() per valutare la semplice espressione “49 + 57”, che rappresenta una semplice addizione:

expression = "49 + 57"
result = eval(expression)
print('The evaluated expression obtained is:',result)

Di seguito è riportato l’output del codice precedente:

The evaluated expression obtained is: 106

La funzione tuple()

La funzione Python tuple() viene utilizzata per creare una tupla, che è una raccolta di elementi ordinati e immutabili. Questa raccolta può includere una varietà di tipi di dati come numeri, stringhe o anche altre tuple.

Una tupla è simile a una lista, ma la differenza principale è che una volta creata una tupla, non è possibile modificarne gli elementi, ovvero non è possibile aggiungerli, rimuoverli o modificarli.

Di seguito la sintassi della funzione Python tuple() è:

tuple(iterable)

Questa funzione accetta qualsiasi oggetto iterabile come una lista, una stringa, un set o un’altra tupla come parametro. Di fatto la funzione tuple() consente di fare una conversione di tipo Python da iterabile a tupla.

Restituisce un nuovo oggetto tupla con gli elementi dell’iterabile specificato.

Esempio

Nell’esempio seguente, stiamo usando la funzione tuple() per convertire la lista “[1, 2, 3]” in una tupla:

my_list = [1, 2, 3]
my_tuple = tuple(my_list)
print('The tuple object obtained is:',my_tuple)

Di seguito è riportato l’output del codice precedente:

The tuple object obtained is: (1, 2, 3)

La funzione list()

La funzione Python list() viene utilizzata per creare un nuovo elenco. Un elenco è una raccolta di elementi che possono contenere diversi tipi di dati, come numeri, stringhe o altri oggetti. È una struttura dati ordinata e mutabile (modificabile), che consente di memorizzare e organizzare più valori in un’unica variabile.

Gli elenchi sono definiti da parentesi quadre [] e i singoli elementi all’interno dell’elenco sono separati da virgole. Puoi accedere agli elementi all’interno di un elenco utilizzando il loro indice (posizione), con il primo elemento all’indice 0.

Di seguito la sintassi della funzione Python list():

list(iterable)

Questa funzione accetta qualsiasi oggetto iterabile come una lista, una stringa, un set o un’altra tupla come parametro. Di fatto la funzione list() consente di fare una conversione di tipo Python da iterabile a lista.

Restituisce un nuovo oggetto elenco con gli elementi dell’iterabile specificato.

Esempio

Nell’esempio seguente, utilizziamo la funzione list() per convertire la stringa “BlogInnovazione” in un elenco dei suoi singoli caratteri:

Newsletter sull’Innovazione
Non perderti le notizie più importanti sull'Innovazione. Iscriviti per riceverle via e-mail.
my_string = "BlogInnovazione"
string_list = list(my_string)
print('The list object obtained is:',string_list)

Di seguito è riportato l’output del codice precedente:

The list object obtained is: ['B', 'l', 'o', 'g', 'I', 'n', 'n', 'o', 'v', 'a', 'z', 'i', 'o', 'n', 'e']

La funzione set()

La funzione Python set() viene utilizzata per creare un nuovo set. Un set è una raccolta di elementi unici, il che significa che ogni elemento appare solo una volta nel set.

È una struttura dati non ordinata e mutabile (modificabile) che consente di memorizzare diversi tipi di dati, come numeri, stringhe o altri oggetti. Gli insiemi sono definiti utilizzando parentesi graffe {} e gli elementi all’interno dell’insieme sono separati da virgole.

Di seguito la sintassi della funzione Python set():

set(iterable)

Questa funzione accetta qualsiasi oggetto iterabile come una stringa, un elenco o un altro set come parametro. Di fatto la funzione set() consente di fare una conversione di tipo Python da iterabile a set.

Restituisce un nuovo oggetto impostato con gli elementi univoci dell’iterabile specificato.

Esempio

Nell’esempio seguente, stiamo utilizzando la funzione set() per convertire la lista “my_list” in un set rimuovendo gli elementi duplicati:

my_list = [1, 2, 2, 3, 4, 4]
set_from_list = set(my_list)
print('The set object obtained is:',set_from_list)

Di seguito è riportato l’output del codice precedente:

The set object obtained is: {1, 2, 3, 4}

La funzione dict()

La funzione Python dict() viene utilizzata per creare un nuovo dizionario. Un dizionario è una struttura dati che memorizza una raccolta di coppie chiave-valore. Ogni chiave nel dizionario è univoca e corrisponde a un valore specifico. È una struttura mutevole (mutevole) e non ordinata.

I dizionari vengono definiti utilizzando parentesi graffe {} e ciascuna coppia chiave-valore è separata da “due punti”. Ad esempio, puoi utilizzare un dizionario per memorizzare informazioni come nomi ed età corrispondenti.

Sintassi della funzione Python dict():

dict(iterable)

Questa funzione accetta un elenco di tuple come parametro in cui ciascuna tupla rappresenta una coppia chiave-valore.

Restituisce un nuovo oggetto dizionario.

Esempio

Nell’esempio seguente, utilizziamo la funzione dict() con argomenti di parole chiave per creare un dizionario “persona” con ciascuna chiave associata a un valore specifico:

person = dict(name="Lauren", age=37, city="London")
print('The dictionary object obtained is:',person)

Di seguito è riportato l’output del codice precedente:

The dictionary object obtained is: {'name': 'Lauren', 'age': 37, 'city': 'London'}

La funzione frozenset()

La funzione Python frozenset() viene utilizzata per creare un oggetto frozenset immutabile.

In Python, un frozenset è simile a un set, ma con una differenza fondamentale: è una raccolta immutabile (immutabile) di elementi unici. Una volta creato un frozenset, non è possibile aggiungere, rimuovere o modificare i suoi elementi. Come i set, i frozenset vengono definiti utilizzando le parentesi graffe {}, ma con la funzione “frozenset()“.

Di seguito è riportata la sintassi della funzione Python frozenset():

frozenset([iterable])

Questa funzione accetta un parametro facoltativo che rappresenta l’oggetto iterabile come una lista, una tupla, un set o un altro iterabile.

Restituisce un nuovo oggetto frozenset contenente elementi dall’iterabile specificato.

Esempio

Nell’esempio seguente, stiamo utilizzando la funzione frozenset() per convertire la lista “my_list” in un frozenset rimuovendo gli elementi duplicati:

my_list = [1, 2, 3, 3, 4]
frozen_set = frozenset(my_list)
print('The frozenset object obtained is:',frozen_set)

Di seguito è riportato l’output del codice precedente:

The frozenset object obtained is: frozenset({1, 2, 3, 4})

La funzione chr()

La funzione Python chr() viene utilizzata per recuperare la rappresentazione di stringa di un valore Unicode specifico.

In termini più semplici, se hai un numero che rappresenta il punto di codice Unicode di un carattere, usando la funzione chr() con quel numero otterrai il carattere vero e proprio. Ad esempio, chiamando “chr(65)” si ottiene “A” poiché 65 rappresenta il punto di codice Unicode per la lettera maiuscola “A”. Questa funzione funziona come l’inverso della funzione “ord()”, che fornisce il punto di codice per un dato carattere.

La funzione chr() accetta valori Unicode compresi nell’intervallo compreso tra 0 e 1114111. Se viene fornito un valore esterno a questo intervallo, la funzione solleva un ValueError.

Di seguito è riportata la sintassi della funzione python chr():

chr(num)

Questa funzione accetta un valore intero come parametro.

Questa funzione restituisce una stringa che rappresenta il carattere con il codice ASCII specificato.

Esempio

Di seguito è riportato un esempio della funzione Python chr(). Qui stiamo recuperando la stringa corrispondente al valore Unicode di “83”:

unicode_value = 83
string = chr(unicode_value)
print("The string representing the Unicode value 83 is:", string)

Di seguito è riportato l’output del codice precedente:

The string representing the Unicode value 83 is: S

La funzione ord()

La funzione Python ord() viene utilizzata per recuperare un numero intero che rappresenta il punto di codice Unicode di un dato carattere. I punti di codice Unicode sono numeri univoci assegnati a ciascun carattere nello standard Unicode e sono numeri interi non negativi compresi tra 0 e 0x10FFFF (decimale 1114111).

La funzione può accettare un carattere o una stringa di lunghezza 1, consentendo al parametro di accettare sia virgolette singole (”) che virgolette doppie (“”). Pertanto, quando usi la funzione ord() su un carattere, ti informa sul numero specifico che rappresenta quel carattere nello standard Unicode.

Ad esempio, l’utilizzo di ord('A') restituirebbe 65, poiché 65 è il punto di codice Unicode per la lettera maiuscola ‘A’.

Di seguito è riportata la sintassi della funzione python ord():

ord(ch)

Questa funzione accetta un singolo carattere come parametro.

Questa funzione restituisce un numero intero che rappresenta il codice Unicode del carattere specificato.

Esempio

Di seguito è riportato un esempio della funzione python ord(). Qui stiamo recuperando il valore Unicode del carattere “S”:

character = 'S'
unicode_value = ord(character)
print("The Unicode value of character S is:", unicode_value)

Di seguito è riportato l’output del codice precedente:

The Unicode value of character S is: 83

La funzione hex()

La funzione Python hex() viene utilizzata per convertire un numero intero in un formato esadecimale (base 16).

L’esadecimale è un sistema numerico che utilizza 16 cifre, dove le prime dieci sono le stesse del sistema decimale (0-9) e le sei successive sono rappresentate dalle lettere dalla A alla F (o af) , corrispondenti ai valori da 10 a 15 . Quando usi la funzione hex() in Python, converte un numero decimale nella sua rappresentazione esadecimale e il risultato è una stringa che inizia con “0x” seguita dalle cifre esadecimali.

Di seguito è riportata la sintassi della funzione python hex():

hex(x)

Questa funzione accetta un valore intero come parametro e restituisce una stringa che rappresenta il valore esadecimale dell’intero specificato.

Esempio

Di seguito è riportato un esempio della funzione Python hex(). Qui stiamo convertendo il numero intero “111” nella sua rappresentazione esadecimale:

integer_number = 111
hexadecimal_number = hex(integer_number)
print('The hexadecimal value obtained is:', hexadecimal_number)

Di seguito è riportato l’output del codice precedente:

The hexadecimal value obtained is: 0x6f

La funzione oct()

La funzione Python oct() viene utilizzata per convertire un valore intero nella sua rappresentazione ottale (base 8).

A differenza del familiare sistema base 10 (decimale) che varia da 0 a 9, l’ottale utilizza solo le cifre “da 0 a 7”. Quando vedi un numero con il prefisso “0o” in Python, come “0o17”, significa che è in notazione ottale.

Di seguito è riportata la sintassi della funzione python oct():

oct(x)

Questa funzione accetta un valore intero come parametro e restituisce una stringa che rappresenta il valore ottale dell’intero specificato.

Esempio

Di seguito è riportato un esempio della funzione Python oct(). Qui stiamo convertendo il numero intero “219” nella sua rappresentazione ottale:

integer_number = 219
octal_number = oct(integer_number)
print('The octal value obtained is:', octal_number)

Di seguito è riportato l’output del codice precedente:

The octal value obtained is: 0o333

Letture Correlate

Ercole Palmeri

Newsletter sull’Innovazione
Non perderti le notizie più importanti sull'Innovazione. Iscriviti per riceverle via e-mail.