1.1 Tipi integrati
Python offre una varietà di tipi di dati integrati che consentono di risolvere molteplici problemi di programmazione. Alcuni di essi li abbiamo già studiati, ora li esamineremo un po' più in dettaglio. Ecco una breve descrizione dei principali tipi di dati integrati:
-
int
— valori interi senza parte frazionaria. -
float
— numeri a virgola mobile (numeri reali). -
complex
— numeri complessi (composti da parte reale e immaginaria). -
str
— stringhe, sequenze di caratteri. -
bool
— tipo di dati logico, può assumere i valoriTrue
oFalse
. -
None
— tipo speciale che rappresenta l'assenza di valore. -
bytes
— sequenza immutabile di byte. -
bytearray
— sequenza mutabile di byte. -
memoryview
— oggetto che consente di lavorare con dati in forma binaria senza copiarli.
Nella tabella seguente sono presentati questi tipi di dati e le loro caratteristiche:
Tipo di dato | Descrizione | Esempio d'uso |
---|---|---|
int |
Numeri interi | x = 10 |
float |
Numeri a virgola mobile | y = 3.14 |
complex |
Numeri complessi | z = 1 + 2j |
str |
Stringhe | s = "Hello, world!" |
bool |
Tipo Booleano | is_valid = True |
None |
Assenza di valore | result = None |
bytes |
Sequenza immutabile di byte | b = bytes([50, 100, 76]) |
bytearray |
Sequenza mutabile di byte | ba = bytearray([50, 100]) |
memoryview |
Rappresentazione dei dati in memoria | mv = memoryview(b'abc') |
L'uso di questi tipi di dati permette di implementare qualsiasi logica in Python, dalle operazioni aritmetiche di base e la manipolazione di testo alla complessa gestione dei dati binari e della memoria.
1.2 Collezioni
Oltre al salvataggio dei dati, Python permette di conservare interi gruppi di oggetti. Questi tipi sono chiamati collezioni
. Le collezioni sono diverse strutture dati che permettono di archiviare, gestire ed elaborare gruppi di elementi. Di seguito sono presentati i principali tipi di collezioni in Python:
-
list (lista)
— insieme ordinato di elementi modificabile. -
tuple (tupla)
— sequenza ordinata di elementi immutabile. -
range (intervallo)
— sequenza di numeri, solitamente usata nei cicli. -
set (insieme)
— collezione non ordinata di elementi unici. -
dict (dizionario)
— collezione di coppie chiave-valore con chiavi uniche. -
frozenset
— variante immutabile di un insiemeset
.
Nella tabella seguente sono presentate queste collezioni e le loro caratteristiche:
Tipo di collezione | Descrizione | Esempio |
---|---|---|
list |
Mutabile, elementi possono ripetersi | my_list = [1, 2, 3] |
tuple |
Immutabile, elementi possono ripetersi | my_tuple = (1, 2, 3) |
range |
Sequenza immutabile di numeri | my_range = range(1, 10) |
set |
Insieme non ordinato di elementi unici | my_set = {1, 2, 3} |
dict |
Coppie chiave-valore, chiavi uniche | my_dict = {'a': 1, 'b': 2} |
frozenset |
Insieme immutabile di elementi unici | my_frozenset = frozenset([1, 2, 3]) |
Ognuna di queste collezioni ha proprietà e metodi unici, il che le rende adatte a diverse attività di programmazione, dalla semplice memorizzazione dei dati alla loro elaborazione e gestione complessa. Le esamineremo più dettagliatamente nelle lezioni successive.
1.3 Classi e oggetti
I tipi integrati sono fantastici, ma a un certo punto potrebbero non bastare. In tal caso, Python offre la possibilità di dichiarare i propri tipi — le classi.
Le classi in Python forniscono un modo per racchiudere funzioni e dati correlati. Inoltre, permettono di modellare oggetti reali o astratti con determinate proprietà e comportamenti.
Ad esempio, immagina di dover descrivere una classe "Smartphone". Questa classe potrebbe contenere dati sul modello, il produttore, la memoria e il sistema operativo. Inoltre, potrebbe avere funzioni (metodi) che descrivono il comportamento dello smartphone, come accensione e spegnimento, installazione di applicazioni e così via.
Una classe viene creata con la parola chiave class
. Questo comando crea un nuovo tipo di oggetto e permette alla nuova classe di ereditare attributi e metodi da un'altra classe.
Per prima cosa ci eserciteremo ad utilizzare le classi esistenti e a creare i loro oggetti, e quando sarà il momento, creeremo le nostre.
Una cosa utile da sapere è che le classi hanno funzioni integrate (chiamate anche metodi di classe), e queste funzioni vengono chiamate nel seguente modo:
oggetto.funzione(parametri)
Ricordi quando abbiamo chiamato la funzione format()
su una stringa? Questo è stato proprio un caso del genere. Esamineremo più nel dettaglio le funzioni, le classi e gli oggetti nelle prossime lezioni.
GO TO FULL VERSION