Tutorial sul Python - Variabili e tipi di dati

  1. Variabile Python
  2. Tipo di dati Python

In questa sezione, imparerete le variabili e i tipi di dati nella programmazione Python.

Variabile Python

Una variabile è una locazione di memoria che ha un nome ed un valore (alcuni dati).

Le variabili hanno nomi univoci in modo che le posizioni di memoria possano essere differenziate. Hanno le stesse regole di denominazione da seguire per gli identificatori. Controllare regole di denominazione degli identificatori.

In Python, non è necessario dichiarare una variabile (specificando il tipo di dati) prima di usare quella variabile. Se si vuole creare una variabile, basta scrivere un nome valido per la variabile e assegnarle un valore usando l’operatore di assegnazione. Il tipo di dati della variabile sarà definito internamente in base al tipo di valore che le si assegna.

Assegnazione della variabile

Un operatore di assegnazione = viene usato per assegnare un valore ad una variabile. Si può assegnare qualsiasi tipo di valore ad una variabile. Il tipo di dati della variabile sarà definito internamente.

Il codice seguente mostra come un operatore di assegnazione può essere usato per assegnare valori di diversi tipi di dati:

x = 3
y = 4.124
z = "Python"

Qui avete le variabili int, float e string.

Assegnazioni multiple

È anche possibile assegnare valori a più variabili in un singolo statement Python. Questo si chiama assegnazione multipla. Considerate il codice qui sotto:

x, y, z = 2, 4.124, "Python"

Qui 2 è assegnato a x, 4.124 è assegnato a y e la stringa “Python” è assegnata a z.

Se si vuole assegnare lo stesso valore a variabili diverse, si può scrivere:

x = y = z = "Blue"

Ora tutte e tre le variabili sono uguali.

Attenzione

Non è una buona pratica assegnare una lista a due variabili come sopra. Entrambe puntano tutte alla stessa posizione di memoria, quindi se il valore viene modificato da una variabile, anche tutte le altre vengono modificate in modo impercettibile. Potreste imbattervi in qualche strano comportamento se non ne siete consapevoli.

Tipo di dati Python

Ogni volta che si assegna un valore ad una variabile, viene specificato anche il tipo di dati della variabile. Python è una programmazione orientata agli oggetti, e tutto in Python è un oggetto perché Python non ha tipi primitivi o unboxed.

In Python, i tipi di dati delle variabili sono in realtà classi di cui le variabili sono le istanze (oggetti).

Di seguito sono riportati alcuni tipi di dati in Python:

Numeri

Numeri come numeri interi, a virgola mobile e numeri complessi sono numeri di Python. In Python, gli interi sono rappresentati da int, le virgole fluttuanti da float e i numeri complessi da complex class.

La funzione integrata type() può essere usata per controllare il tipo di dati di una variabile o a quale classe appartiene una variabile.

La funzione isinstance() è usata per verificare se l’oggetto è un’istanza del clas specifico o una sua sottoclasse. Il suo primo argomento è l’oggetto stesso e il secondo è il tipo di dati da confrontare.

x = 3
print("type of", x, "is", type(x))
x = 3.23
print("type of", x, "is", type(x))
x = 3+3j
print("is", x, "a complex number:", isinstance(x, complex))
type of 3 is <class 'int'>
type of 3.23 is <class 'float'>
is (3+3j) a complex number: True

Elenco

Una lista è una sequenza ordinata di elementi di (diversi) tipi di dati. Una lista può essere creata in Python usando le parentesi quadre [] e all’interno delle parentesi quadre si hanno gli elementi della lista che sono separati da virgole.

x = [2, 4.5, "blue"]

Per accedere al membro della lista si può usare l’operatore di accesso all’indice che in Python è conosciuto come operatore di taglio []. L’indicizzazione degli elementi della lista inizia da 0. Si consideri l’esempio seguente:

x = [2, 4, 6, 8, 10]
print('x[0] =', x[0])			#displays the first element
print('x[0:2] =', x[0:2])		#displays first two elements of list that is at location 0 and 1
print('x[2:] =', x[2:])			#displays elements from location 2 (third element)
x[0] = 2
x[0:2] = [2, 4]
x[2:] = [6, 8, 10]

Gli elementi della lista Python possono essere modificati (aggiornati, cancellati, aggiunti). In altre parole, Python list è mutabile.

Nota

Le liste sono mutevoli.

Tuple

Tuple è anche una lista di articoli ordinati uguale alla lista. L’unica differenza tra una tupla e una lista è che l’elemento tupla è immutabile.

È possibile definire una tupla di Python utilizzando le parentesi e gli elementi sono separati da virgole:

x = (3, 'pink', 3+8j)
print('x[0] =', x[0])
print('x[0:2] =', x[0:2])
x[0] = 4			#Error because tuples are immutable
x[0] = 3
x[0:2] = (3, 'pink')
TypeError: 'tuple' object does not support item assignment
Nota

Le tuple sono immutabili.

Stringa

Una stringa è una sequenza di caratteri. Una stringa può essere creata usando virgolette singole o doppie. Una stringa multilinea può anche essere creata usando virgolette triple.

x = "String of characters"
x = """Multiline
string"""

Per accedere ai caratteri dell’operatore di taglio della stringa si usa l’operatore di taglio.

x = 'Python Programming'
print('x[0] =', x[0])
print('x[4:15] =', x[4:15])
x[4] = 'l'			#Error because strings are immutable
x[0] = P
x[4:15] = on Programm
TypeError: 'str' object does not support item assignment
Nota

Anche le stringhe sono immutabili.

Set

Il set contiene elementi unici ed è una lista non ordinato di elementi. Un set in Python può essere creato usando le parentesi graffe {} e gli elementi sono separati da virgole.

x = {3, 5, 7, 2, 4, 5}		
print(x)		#prints the set variable 
print(type(x))		#checking type of x
{2, 3, 4, 5, 7}
<class 'set'>
Nota

I set sono mutevoli.

Dizionario

Il dizionario è un tipo di dati nativi Python i cui elementi sono coppie chiave-valore. Un dizionario contiene elementi non ordinati. Un dato o un valore del dizionario può essere recuperato se si conosce la chiave.

Un dizionario può essere creato usando le parentesi graffe {} con ogni elemento come coppia contenente chiave e valore.

Le chiavi e i valori nel dizionario Python possono essere di qualsiasi tipo.

Considerate l’esempio qui sotto:

x = {1:'blue', 'key':'pink'}
print(type(x))
print('x[1] = ', x[1])		#using key to retrive value
print("x['key'] =", x['key']) #using key to retrive value
<class 'dict'>
x[1] =  blue
x['key'] = pink
Nota

Il dizionario è mutevole.

Conversione del tipo

Le variabili Python possono essere convertite in altri tipi, per esempio, si può convertire il tipo di dati int in tipo float. Per la conversione di tipo si può usare la funzione di conversione come int(), float(), str(), ecc.

x = 8
print("Value of x = ", int(x))
print("Value of x = ", float(x))
Value of x =  8
Value of x =  8.0

Se si vuole convertire il valore float in valore int, allora la parte decimale sarà troncata.

y = 3.4
print("Converting float to int:", int(y))
Converting float to int: 3

Se si vuole convertire il tipo di dati string in un altro tipo, si devono fornire valori compatibili, altrimenti si otterrà un ValueError:

print("Converting string to float:", float('33.9'))
print("Converting string to float:", float('text'))
Converting string to float: 33.9
Traceback (most recent call last):
  File "<pyshell#12>", line 1, in <module>
    float('a')
ValueError: could not convert string to float: text

Si può convertire una sequenza in un’altra, per esempio, set in una tuple o una string in list e così via usando funzioni come list(), set(), tuple(), ecc.

print(set([4, 5, 6]))
print(tuple({8, 9, 10}))
print(list('Python'))
{4, 5, 6}
(8, 9, 10)
['P', 'y', 't', 'h', 'o', 'n']