Le Variabili
Per definire variabili in Python, è sufficiente utilizzare l'operatore di assegnamento (=) come nei seguenti esempi:
numero = 10
stringa = "Python"
lista = [1, 2, 3]
Come si vede, in Python non è necessario né definire le variabili prima di utilizzarle, né specificare il loro tipo.
Differenze con altri linguaggi
In linguaggi come C, le variabili fanno riferimento a specifiche locazioni di memoria che hanno una dimensione fissa che dipende dal loro tipo (per questo è necessario specificare il tipo quando si dichiara una variabile). In Python invece, gli oggetti hanno un tipo specifico (numero, stringa, lista, etc.), e le variabili sono solo "etichette" che si si riferiscono a un determinato oggetto.
Per capire meglio questo fondamentale concetto, possiamo vedere un semplice esempio.
/* Codice C */
int x;
x = 10;
x = 20;
In questo codice C:
- viene definita una variabile
xdi tipoint(cioè grande abbastanza per contenere un numero intero); - il valore
10viene salvato nella locazione di memoria associata ax; - il valore
20viene salvato nella locazione di memoria associata ax, sovrascrivendo il10.
# codice Python
x = 10
x = 20
Anche se questo codice Python può sembrare molto simile, quello che accade è diverso:
- l'oggetto
10viene creato, e l'operazione di assegnamento fa in modo che la variabilexsi riferisca a questo oggetto; - l'oggetto
20viene creato, e la variabile/etichettaxviene "spostata" da10a20; - siccome non ci sono più variabili che fanno riferimento all'oggetto
10, il garbage collector lo eliminirà automaticamente.
In entrambi questi esempi, il valore finale associato con la variabile x sarà 20.
Come abbiamo detto precedentemente, in Python le variabili non hanno tipo e possono riferirsi a qualsiasi tipo di oggetto. Il codice seguente è quindi perfettamente valido in Python:
x = 10
x = "Python"
x = [1, 2, 3]
In questo esempio la variabile/etichetta x viene "spostata" dall'intero 10 alla stringa "Python", e infine alla lista [1, 2, 3].
Tipi di dato
Python possiede sia i classici tipi di dato, comuni alla maggior parte dei linguaggio di programmazione, ma anche diversi tipi più potenti e flessibili. Ecco una tabella che elenca alcuni dei tipi di dati più comuni in Python:
| Tipo di dato | Nome | Descrizione | Esempi |
|---|---|---|---|
| Intero | int |
Intero di dimensione arbitraria | -42, 0, 1200, 999999999999999999 |
| Reale | float |
Numero a virgola mobile | 3.14, 1.23e-10, 4.0E210 |
| Booleano | bool |
Per valori veri o falsi | True, False |
| Complesso | complex |
Numeri complessi con parte reale e immaginaria | 3+4j, 5.0+4.1j, 3j |
| Stringhe | str |
Usata per rappresentare testo | '', 'stefano', "l'acqua" |
| Bytes | bytes |
Usata per rappresentare bytes | b'', b'\x00\x01\x02', b'Python' |
| Liste | list |
Una sequenza mutabile di oggetti | [], [1, 2, 3], ['Hello', 'World'] |
| Tuple | tuple |
Una sequenza immutabile di oggetti | (), (1, 2, 3), ('Python', 3) |
| Insiemi | set/frozenset |
Un'insieme di oggetti unici | {1, 2, 3}, {'World', 'Hello'} |
| Dizionari | dict |
Una struttura che associa chiavi a valori | {}, {'nome': 'Ezio', 'cognome': 'Melotti'} |
Nelle prossime lezioni affronteremo più in dettaglio questi tipi di dato e vedremo le loro caratteristiche.
Nomi di variabili
Ricordiamo che le regole da seguire nella scelta dei nomi delle variabili è simile a quella dei più comuni linguaggi di programmazione, in particolare:
- ogni nome di variabile deve iniziare con una lettera o con il carattere underscore (
_), e può essere seguita da lettere, numeri, o underscore; - esistono delle parole riservate (keyword) che non possono essere utilizzate come nomi di variabili:
False,None,True,and,as,assert,break,class,continue,def,del,elif,else,except,finally,for,from,global,if,import,in,is,lambda,nonlocal,not,or,pass,raise,return,try,while,with,yield; - Python è un linguaggio case-sensitive, che distingue tra nomi di variabili composti da caratteri minuscoli e maiuscoli;
- in Python 3 è possibile (ma generamente sconsigliato) usare caratteri accentati o in altri alfabeti nei nomi delle variabili, ad esempio:
età = 20.
La PEP 8 include una sezione riguardante le convenzioni da usare con i nomi delle variabili.
Assegnamento multiplo
Una singolare possibilità offerta da Python è rappresentata dall’assegnamento multiplo, che permette di inizializzare più variabili direttamente sulla stessa riga di codice. Per capire quest’ultimo concetto, basta osservare l’esempio seguente:
>>> a, b, c = 2, 3, 5 # assegnamento multiplo
>>> a * b + c
11
>>> a
2
>>> b
3
>>> c
5
I commenti
In Python è possibile usare il carattere # per aggiungere commenti al codice. Ogni riga di commento deve essere preceduta da un #, ed è anche possibile aggiungere commenti in seguito a istruzioni:
# Questo commento occupa diverse righe, e ogni riga
# è preceduta da un # per indicare a Python di
# ignorarle tutte
a = 3 # questo commento segue un'istruzione
Python ignorerà automaticamente tutto ciò che segue il carattere # fino al termine della riga.
La PEP 8 include anche una sezione riguardante i commenti.
Se vuoi aggiornamenti su Development inserisci la tua email nel box qui sotto: