1. Corso di Python
Riccardo Bortoluzzi
Collegio Universitario don Nicola Mazza
31 Marzo 2020
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 1 / 37
2. Struttura della lezione
1 Introduzione
2 Tipi Numerici
3 Variabili
4 Tipo Stringa
5 Tipi Contenitori
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 2 / 37
3. Introduzione
Python
Python è un linguaggio di programmazione ad alto livello ed è interpretato
Fu creato nel 1991.
Esistono 2 versioni principali:
Python 2.7
Python 3
Per avviare Python, in generale, basta da riga di comando digitare python
(oppure python3), altrimenti ricercarlo tra i programmi.
root@slax:~# python3
Python 3.5.3 (default, Sep 27 2018, 17:25:39)
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more infor
>>>
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 3 / 37
4. Tipi Numerici
Tipi Numerici
int
Il tipo int serve per rappresentare i numeri interi (eventualmente con il loro
segno).
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 4 / 37
5. Tipi Numerici
Tipi Numerici
int
Il tipo int serve per rappresentare i numeri interi (eventualmente con il loro
segno).
oat
Il tipo oat serve per rappresentare i numeri razionali.
Il simbolo di separazione tra unità e decimali è il punto (.).
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 4 / 37
6. Tipi Numerici
Tipi Numerici
int
Il tipo int serve per rappresentare i numeri interi (eventualmente con il loro
segno).
oat
Il tipo oat serve per rappresentare i numeri razionali.
Il simbolo di separazione tra unità e decimali è il punto (.).
complex
Il tipo complex serve per rappresentare i numeri complessi.
L'unità immaginaria è indicata con j.
Bisogna sempre indicare il coeciente della parte immaginaria.
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 4 / 37
7. Tipi Numerici
Operazioni
Le operazioni vengono eseguite per tipi e gli operandi vengono convertiti al
tipo più esterno tra quelli degli operandi.
Operatori
+ Addizione 3 + 5 = 8
- Sottrazione 6 - 9 = -3
* Moltiplicazione 2 * 5 = 10
/ Divisione esatta 7 / 5 = 1.4
// Divisione intera 7 // 5 = 1
% Modulo 7 % 5 = 2
** Elevamento a potenza 2 ** 3 = 8
c.real Parte reale del numero (7-5j).real = 7.0
c.imag Parte immaginaria del numero (7-5j).imag = -5.0
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 5 / 37
8. Tipi Numerici
Conversione tra tipi
Per sapere il tipo di un oggetto si utilizza la funzione type()
type (6.5)
type 'float'
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 6 / 37
9. Tipi Numerici
Conversione tra tipi
Per sapere il tipo di un oggetto si utilizza la funzione type()
type (6.5)
type 'float'
Per convertire un tipo in un altro si utilizzano le funzioni che si chiamano
come il tipo di destinazione: int(n) float(n) complex(n)
float (6)
6.0
complex (8.2)
(8.2+0j)
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 6 / 37
14. Tipi Numerici
Esercizi
7%5
2
int (11/3)
3
type (5.2 -3.2)
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 7 / 37
15. Tipi Numerici
Esercizi
7%5
2
int (11/3)
3
type (5.2 -3.2)
type 'float'
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 7 / 37
16. Tipi Numerici
Esercizi
7%5
2
int (11/3)
3
type (5.2 -3.2)
type 'float'
(-1j)**4
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 7 / 37
17. Tipi Numerici
Esercizi
7%5
2
int (11/3)
3
type (5.2 -3.2)
type 'float'
(-1j)**4
(1+0j)
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 7 / 37
18. Tipi Numerici
Esercizi
7%5
2
int (11/3)
3
type (5.2 -3.2)
type 'float'
(-1j)**4
(1+0j)
float (23//3)
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 7 / 37
19. Tipi Numerici
Esercizi
7%5
2
int (11/3)
3
type (5.2 -3.2)
type 'float'
(-1j)**4
(1+0j)
float (23//3)
7.0
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 7 / 37
20. Tipi Numerici
Esercizi
Provate a scrivere la seguente espressione:
3
2 + 4
3
· 9
3·5·7
8 − 17//5
4
%3
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 8 / 37
21. Tipi Numerici
Esercizi
Provate a scrivere la seguente espressione:
3
2 + 4
3
· 9
3·5·7
8 − 17//5
4
%3
( ( (3/2+4)**3*9 ) / ( (3*5*7)/8 - (17//5)/4 ) )%3
1.0
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 8 / 37
22. Variabili
Variabili
Variabili
Una variabile è un nome che si riferisce ad un dato.
Le variabili possono contenere sia lettere che numeri, ma devono
cominciare con una lettera.
Le variabili sono case sensitive.
Per assegnare un valore a una variabile si utilizza l'operatore =
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 9 / 37
23. Variabili
Variabili
Variabili
Una variabile è un nome che si riferisce ad un dato.
Le variabili possono contenere sia lettere che numeri, ma devono
cominciare con una lettera.
Le variabili sono case sensitive.
Per assegnare un valore a una variabile si utilizza l'operatore =
x=9
Ciao =6.2
py007 =5+9j
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 9 / 37
24. Variabili
Operazioni con varibili
Per visualizzare il valore contenuto in una variabile si usa la funzione
print() con le parentesi
print(Ciao)
6.2
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 10 / 37
25. Variabili
Operazioni con varibili
Per visualizzare il valore contenuto in una variabile si usa la funzione
print() con le parentesi
print(Ciao)
6.2
Per incrementare una variabile numerica di una unità si può utilizzare
l'operatore +=1
x+=1
Che equivale a scrivere
x=x+1
Analogamente si possono utilizzare gli altri operatori (-=, *=, . . . )
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 10 / 37
26. Tipo Stringa
Tipo str
str
Il tipo str serve per rappresentare le stringhe di testo.
Una stringa deve essere racchiusa tra singoli apici (' ') oppure tra doppi
apici ( ).
Per creare una stringa in più righe (che può essere utilizzata anche come
commento), si usano 3 apici singoli o doppi ( ' ' oppure )
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 11 / 37
27. Tipo Stringa
Tipo str
str
Il tipo str serve per rappresentare le stringhe di testo.
Una stringa deve essere racchiusa tra singoli apici (' ') oppure tra doppi
apici ( ).
Per creare una stringa in più righe (che può essere utilizzata anche come
commento), si usano 3 apici singoli o doppi ( ' ' oppure )
s = 'ciao a tutti'
frase2 = questo corso e' bellissimo
su_piu_righe = '''Python ci piace tantissimo!
Lo useremo di sicuro '''
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 11 / 37
28. Tipo Stringa
Concatenazione e ripetizione di stringhe
Per eseguire la concatenazione di stringhe si usa l'operatore +
'chiudete la cassa ' + 'forte con un lucchetto '
'chiudete la cassaforte con un lucchetto '
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 12 / 37
29. Tipo Stringa
Concatenazione e ripetizione di stringhe
Per eseguire la concatenazione di stringhe si usa l'operatore +
'chiudete la cassa ' + 'forte con un lucchetto '
'chiudete la cassaforte con un lucchetto '
Per eseguire la ripetizione di stringhe si utilizza l'operatore *
ah*5
'ahahahahah '
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 12 / 37
30. Tipo Stringa
Metodi per le stringhe
I metodi sono particolari funzioni che ritornano una nuova stringa oppure
un altro valore e la loro sintassi è stringa.metodo(parametri)
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 13 / 37
31. Tipo Stringa
Metodi per le stringhe
I metodi sono particolari funzioni che ritornano una nuova stringa oppure
un altro valore e la loro sintassi è stringa.metodo(parametri)
Per sapere il numero di occorrenze di una sottostringa si utilizza il metodo
.count(sottostringa)
Python e' molto divertente.count('te')
2
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 13 / 37
32. Tipo Stringa
Metodi per le stringhe
I metodi sono particolari funzioni che ritornano una nuova stringa oppure
un altro valore e la loro sintassi è stringa.metodo(parametri)
Per sapere il numero di occorrenze di una sottostringa si utilizza il metodo
.count(sottostringa)
Python e' molto divertente.count('te')
2
Per sostituire una sottostringa con un'altra si utilizza il metodo
.replace(vecchia, nuova)
'quesio iopo roiola tanio'.replace('io', 'to')
'questo topo rotola tanto '
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 13 / 37
33. Tipo Stringa
Metodi e funzioni per le stringhe
Di seguito sono elencati alcuni metodi comuni delle stringhe
Le variabili s ed a sono di tipo str, n di tipo int, L rappresenta una lista
di stringhe.
s.capitalize() s.center(n)
s.find(a) s.index(a)
s.isalnum() s.isalpha()
s.isdigit() s.islower()
s.isupper() s.join(L)
s.lower() s.ljust(n)
s.lstrip() s.upper()
Per conoscere la lunghezza di una stringa si utilizza il comando len(s)
len('Ora abbiamo imparato come usare le stringhe ')
43
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 14 / 37
34. Tipo Stringa
Conversioni
Per convertire un dato al formato stringa si utilizza la funzione str(dato)
str (8.5)
'8.5'
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 15 / 37
35. Tipo Stringa
Conversioni
Per convertire un dato al formato stringa si utilizza la funzione str(dato)
str (8.5)
'8.5'
Per convertire un carattere in codice ASCII si utilizza la funzione
ord(carattere)
ord('G')
71
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 15 / 37
36. Tipo Stringa
Conversioni
Per convertire un dato al formato stringa si utilizza la funzione str(dato)
str (8.5)
'8.5'
Per convertire un carattere in codice ASCII si utilizza la funzione
ord(carattere)
ord('G')
71
Per convertire un numero del codice ASCII in carattere si utilizza la
funzione chr(n)
chr (103)
'g'
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 15 / 37
37. Tipo Stringa
Porzioni di stringa
Per accede ad un carattere di una stringa si utilizza la sintassi stringa[indice]
Il primo carattere della stringa ha indice 0, l'ultimo la lunghezza della
stringa −1 (o semplicemente −1)
s='Attenti agli indici '
s[3]
'e'
s[-1]
'i'
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 16 / 37
38. Tipo Stringa
Porzioni di stringa
Per accede ad un carattere di una stringa si utilizza la sintassi stringa[indice]
Il primo carattere della stringa ha indice 0, l'ultimo la lunghezza della
stringa −1 (o semplicemente −1)
s='Attenti agli indici '
s[3]
'e'
s[-1]
'i'
Per ottenere una sottostringa si utilizza la sintassi stringa[inizio:ne] dove
inizio rappresenta l'indice del primo carattere da considerare e ne il
primo da escludere
s[2:7]
'tenti '
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 16 / 37
39. Tipo Stringa
Esercizi
Attraverso le stringhe
s1='cchi'
s2='ri'
creare la parola cchicchiricchi
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 17 / 37
40. Tipo Stringa
Esercizi
Attraverso le stringhe
s1='cchi'
s2='ri'
creare la parola cchicchiricchi
s1*2 + s2 + s1
'cchicchiricchi '
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 17 / 37
41. Tipi Contenitori
Tipo list
list
Il tipo list serve per rappresentare le collezioni di oggetti eventualmente
anche di diverso tipo.
Le liste sono mutabili e indicizzabili.
Si può creare una lista racchiudendo gli elementi tra parentesi quadre ([ , ])
e separando gli elementi da virgole.
Una lista vuota si ottiene con il comando ([]).
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 18 / 37
42. Tipi Contenitori
Tipo list
list
Il tipo list serve per rappresentare le collezioni di oggetti eventualmente
anche di diverso tipo.
Le liste sono mutabili e indicizzabili.
Si può creare una lista racchiudendo gli elementi tra parentesi quadre ([ , ])
e separando gli elementi da virgole.
Una lista vuota si ottiene con il comando ([]).
[1,2,3,6,8]
[1, 2, 3, 6, 8]
a='primo'
[13, e', 'un numero ', a]
[13, e', 'un numero ', 'primo']
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 18 / 37
43. Tipi Contenitori
Tipo list
Indicizzazione
L'indicizzazione serve per accedere agli elementi di una lista
La sintassi è lista[indice] racchiudendo l'indice tra parentesi quadre (il
primo elemento ha sempre indice 0)
L=['da', 'stasera ', 'divertiamoci ', 'con', 'Python ']
L[2]
'divertiamoci '
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 19 / 37
44. Tipi Contenitori
Tipo list
Indicizzazione
L'indicizzazione serve per accedere agli elementi di una lista
La sintassi è lista[indice] racchiudendo l'indice tra parentesi quadre (il
primo elemento ha sempre indice 0)
L=['da', 'stasera ', 'divertiamoci ', 'con', 'Python ']
L[2]
'divertiamoci '
Si possono utilizzare anche indici negativi.
In questo caso −1 indica l'ultimo elemento della lista, −2 il penultimo, . . .
L[-1]
'Python '
L[-5]
'da'
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 19 / 37
45. Tipi Contenitori
Tipo list
Slicing e Striding
Lo slicing e lo striding si utilizzano per ottenere porzioni di una lista.
La sintassi per lo slicing è lista[inizio:ne] dove inizio indica il primo
indice da considerare (se lasciato vuoto indica il primo della lista), ne il
primo da escludere (se vuoto come ultimo elemento si considera l'ultimo
della lista) e serve per ottenere porzioni continue di liste.
lista = ['Ora', 'impariamo ', 'come', 'scorrere ', 'liste ']
lista [1:3]
['impariamo ', 'come']
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 20 / 37
46. Tipi Contenitori
Tipo list
Slicing e Striding
Lo slicing e lo striding si utilizzano per ottenere porzioni di una lista.
La sintassi per lo slicing è lista[inizio:ne] dove inizio indica il primo
indice da considerare (se lasciato vuoto indica il primo della lista), ne il
primo da escludere (se vuoto come ultimo elemento si considera l'ultimo
della lista) e serve per ottenere porzioni continue di liste.
lista = ['Ora', 'impariamo ', 'come', 'scorrere ', 'liste ']
lista [1:3]
['impariamo ', 'come']
Lo striding serve per ottenere porzioni eventualmente non continue di liste.
La sintassi è lista[inizio:ne:passo] dove passo indica il numero di
elementi da saltare e permette di ricavare dli elementi a intervalli regolari.
lista [1:4:2]
['impariamo ', 'scorrere ']
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 20 / 37
47. Tipi Contenitori
Tipo list
Mutabilità
Le liste sono mutabili
L=['I', 'delfini ', 'non', 'sono', 'intelligenti ']
L[2]=certamente
print (L)
['I', 'delfini ', 'certamente ', 'sono', 'intelligenti ']
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 21 / 37
48. Tipi Contenitori
Tipo list
Copia
A causa della mutabilità, per copiare una lista, non si usa l'operatore di
assegnamento, ma lo slicing con la sitassi lista[:].
g=L
L[1]=topi
print(g)
['I', 'topi', 'certamente ', 'sono', 'intelligenti ']
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 22 / 37
49. Tipi Contenitori
Tipo list
Copia
A causa della mutabilità, per copiare una lista, non si usa l'operatore di
assegnamento, ma lo slicing con la sitassi lista[:].
g=L
L[1]=topi
print(g)
['I', 'topi', 'certamente ', 'sono', 'intelligenti ']
c=L[:]
print(c)
['I', 'topi', 'certamente ', 'sono', 'intelligenti ']
L[4]=brutti
print(L)
['I', 'topi', 'certamente ', 'sono', 'brutti ']
print(c)
['I', 'topi', 'certamente ', 'sono', 'intelligenti ']
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 22 / 37
50. Tipi Contenitori
Tipo list
Concatenazione
Per concatenare 2 o più liste si utilizza l'operatore +.
pari = [0,2,4,6,8]
dispari = [1,3,5,7,9]
numeri = pari + dispari
print(numeri)
[0, 2, 4, 6, 8, 1, 3, 5, 7, 9]
numeri + ['lista ', 'con', 'testo '] + [100]
[0, 2, 4, 6, 8, 1, 3, 5, 7, 9, 'lista', 'con', 'testo', 100]
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 23 / 37
51. Tipi Contenitori
Tipo list
Metodi per le liste
Le variabili L e H rappresentano liste, a un elemento qualsiasi, b un
elemento della lista L, n un numero
L.append(a) L.clear() L.count(a) L.extend(H)
L.index(b) L.insert(n, a) L.pop() L.remove(b)
L.reverse() L.sort()
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 24 / 37
52. Tipi Contenitori
Tipo list
Metodi per le liste
Le variabili L e H rappresentano liste, a un elemento qualsiasi, b un
elemento della lista L, n un numero
L.append(a) L.clear() L.count(a) L.extend(H)
L.index(b) L.insert(n, a) L.pop() L.remove(b)
L.reverse() L.sort()
Essendo le liste mutabili, applicare un metodo ad una lista comporta la
modicazione della stessa.
M=[La, Matematica]
M.extend (['non', e', 'molto', 'affascinante '])
M.remove('non')
print(M)
['La', 'Matematica ', e', 'molto ', 'affascinante ']
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 24 / 37
53. Tipi Contenitori
Tipo list
Descrittori di lista
I descrittori di lista si utilizzano per creare delle liste, partendo da altri
contenitori.
La sintassi è [f(i) for i in contenitore] dove f può essere una funzione
qualsiasi.
[2*i for i in [ciao, ecco, bene]]
['ciaociao ', 'eccoecco ', 'benebene ']
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 25 / 37
54. Tipi Contenitori
Tipo list
Descrittori di lista
I descrittori di lista si utilizzano per creare delle liste, partendo da altri
contenitori.
La sintassi è [f(i) for i in contenitore] dove f può essere una funzione
qualsiasi.
[2*i for i in [ciao, ecco, bene]]
['ciaociao ', 'eccoecco ', 'benebene ']
Si possono utilizzare anche più iteratori nello stesso descrittore di lista
([f(x,y) for x in contenitore1 for y in contenitore2])
[(a+b) for a in 'XYZ' for b in ['1', '2']]
['X1', 'X2', 'Y1', 'Y2', 'Z1', 'Z2']
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 25 / 37
55. Tipi Contenitori
Tipo list
Descrittori di lista
I descrittori di lista si utilizzano per creare delle liste, partendo da altri
contenitori.
La sintassi è [f(i) for i in contenitore] dove f può essere una funzione
qualsiasi.
[2*i for i in [ciao, ecco, bene]]
['ciaociao ', 'eccoecco ', 'benebene ']
Si possono utilizzare anche più iteratori nello stesso descrittore di lista
([f(x,y) for x in contenitore1 for y in contenitore2])
[(a+b) for a in 'XYZ' for b in ['1', '2']]
['X1', 'X2', 'Y1', 'Y2', 'Z1', 'Z2']
Si può richiedere che gli elementi di un descrittore soddisno a varie
condizioni, utilizzando la sintassi [f(i) for i in contenitore if condizione]
[2**i for i in range (6) if (i+3)4]
[4, 8, 16, 32]
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 25 / 37
56. Tipi Contenitori
Tipo list e str
Esercizi
Utilizzando la codica ASCII decifrare la seguente lista:
L=[67, 79, 77, 80, 76, 73, 77, 69, 78, 84, 73, 33]
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 26 / 37
57. Tipi Contenitori
Tipo list e str
Esercizi
Utilizzando la codica ASCII decifrare la seguente lista:
L=[67, 79, 77, 80, 76, 73, 77, 69, 78, 84, 73, 33]
[chr(i) for i in L]
['C','O','M','P','L','I','M','E','N','T','I','!']
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 26 / 37
58. Tipi Contenitori
Tipo list
Esercizi
Trovare 3 modi dierenti per ottenere la lista dei multipli di 6 da 0 a 61:
[0, 6, 12, 18, 24, 30, 36, 42, 48, 54, 60]
Suggerimento: utilizzare la funzione range(numero_nale) che crea un
generatore dei numeri interi positivi o nulli e numero_nale
list(range (5))
[0, 1, 2, 3, 4]
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 27 / 37
59. Tipi Contenitori
Tipo list
Esercizi
Trovare 3 modi dierenti per ottenere la lista dei multipli di 6 da 0 a 61:
[0, 6, 12, 18, 24, 30, 36, 42, 48, 54, 60]
Suggerimento: utilizzare la funzione range(numero_nale) che crea un
generatore dei numeri interi positivi o nulli e numero_nale
list(range (5))
[0, 1, 2, 3, 4]
list(range (62))[0:62:6]
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 27 / 37
60. Tipi Contenitori
Tipo list
Esercizi
Trovare 3 modi dierenti per ottenere la lista dei multipli di 6 da 0 a 61:
[0, 6, 12, 18, 24, 30, 36, 42, 48, 54, 60]
Suggerimento: utilizzare la funzione range(numero_nale) che crea un
generatore dei numeri interi positivi o nulli e numero_nale
list(range (5))
[0, 1, 2, 3, 4]
list(range (62))[0:62:6]
[6*i for i in range (61//6+1)]
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 27 / 37
61. Tipi Contenitori
Tipo list
Esercizi
Trovare 3 modi dierenti per ottenere la lista dei multipli di 6 da 0 a 61:
[0, 6, 12, 18, 24, 30, 36, 42, 48, 54, 60]
Suggerimento: utilizzare la funzione range(numero_nale) che crea un
generatore dei numeri interi positivi o nulli e numero_nale
list(range (5))
[0, 1, 2, 3, 4]
list(range (62))[0:62:6]
[6*i for i in range (61//6+1)]
[i for i in range (62) if i%6==0]
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 27 / 37
62. Tipi Contenitori
Tipo tuple
tuple
Il tipo tuple serve per rappresentare collezioni di oggetti.
Al contrario delle liste, le tuple sono immutabili.
Per creare una tupla si racchiudono gli elementi tra parentesi tonde,
separati da una virgola (( elem1, elem2, . . . )).
Per creare una tupla con un solo elemento è necessario mettere la virgola
dopo lo stesso (( elem1,)).
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 28 / 37
63. Tipi Contenitori
Tipo tuple
tuple
Il tipo tuple serve per rappresentare collezioni di oggetti.
Al contrario delle liste, le tuple sono immutabili.
Per creare una tupla si racchiudono gli elementi tra parentesi tonde,
separati da una virgola (( elem1, elem2, . . . )).
Per creare una tupla con un solo elemento è necessario mettere la virgola
dopo lo stesso (( elem1,)).
(tupla, numero, 1)
('tupla', 'numero ', 1)
(5,)
(5,)
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 28 / 37
64. Tipi Contenitori
Tipo tuple
Indicizzazione
Come per le liste, anche con le tuple si può accedere agli elementi tramite
indicizzazione e si possono applicare le funzioni di slicing e striding
t=(dove, 2, uni formano, 3)
t[2]
'uni formano '
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 29 / 37
65. Tipi Contenitori
Tipo tuple
Indicizzazione
Come per le liste, anche con le tuple si può accedere agli elementi tramite
indicizzazione e si possono applicare le funzioni di slicing e striding
t=(dove, 2, uni formano, 3)
t[2]
'uni formano '
Però le tuple non sono modicabili
t[0]=23
Traceback (most recent call last):
File stdin , line 1, in module
TypeError: 'tuple ' object does not support item assignment
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 29 / 37
66. Tipi Contenitori
Tipo dict
dict
Il tipo dict indica i dizionari e serve per rappresentare delle coppie
chiave-valore.
Per creare un dizionario si inseriscono le coppie tra parentesi grae
seguendo la sintassi {chiave1:valore1, chiave2:valore2, . . . }.
Le chiavi devono essere immutabili (numeri, stringhe, tuple), i valori
possono essere anche mutabili.
Per creare un dizionario vuoto si utilizza la sintassi {}.
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 30 / 37
67. Tipi Contenitori
Tipo dict
dict
Il tipo dict indica i dizionari e serve per rappresentare delle coppie
chiave-valore.
Per creare un dizionario si inseriscono le coppie tra parentesi grae
seguendo la sintassi {chiave1:valore1, chiave2:valore2, . . . }.
Le chiavi devono essere immutabili (numeri, stringhe, tuple), i valori
possono essere anche mutabili.
Per creare un dizionario vuoto si utilizza la sintassi {}.
d={2:[ciao, [] ], ch:5, (4, 3):ok}
print(d)
{2: ['ciao', []], 'ch': 5, (4, 3): 'ok'}
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 30 / 37
68. Tipi Contenitori
Tipo dict
Accesso, Aggiunta, Modica
Per aggiungere una chiave (e il rispettivo valore) al dizionario si scrive
dizionario[chiave]=valore
d[nuovo]=3
print(d)
{2: ['ciao', []], 'ch': 5, 'nuovo': 3, (4, 3): 'ok'}
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 31 / 37
69. Tipi Contenitori
Tipo dict
Accesso, Aggiunta, Modica
Per aggiungere una chiave (e il rispettivo valore) al dizionario si scrive
dizionario[chiave]=valore
d[nuovo]=3
print(d)
{2: ['ciao', []], 'ch': 5, 'nuovo': 3, (4, 3): 'ok'}
Per accedere al valore di una chiave si utilizza la sintassi dizionario[chiave]
d[(4, 3)]
'ok'
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 31 / 37
70. Tipi Contenitori
Tipo dict
Accesso, Aggiunta, Modica
Per aggiungere una chiave (e il rispettivo valore) al dizionario si scrive
dizionario[chiave]=valore
d[nuovo]=3
print(d)
{2: ['ciao', []], 'ch': 5, 'nuovo': 3, (4, 3): 'ok'}
Per accedere al valore di una chiave si utilizza la sintassi dizionario[chiave]
d[(4, 3)]
'ok'
Si possono anche modicare i valori associati alle chiavi
d[ch]=10
print(d)
{2: ['ciao', []], 'ch': 10, 'nuovo': 3, (4, 3): 'ok'}
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 31 / 37
71. Tipi Contenitori
Tipo dict
Metodi ed eliminazione elementi
Alcuni metodi utilizzabili con i dizionari (le variabili d1 e d2 rappresentano
dei dizionari)
d1.clear() d1.copy() d1.items()
d1.kesy() d1.update(d2) d1.values()
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 32 / 37
72. Tipi Contenitori
Tipo dict
Metodi ed eliminazione elementi
Alcuni metodi utilizzabili con i dizionari (le variabili d1 e d2 rappresentano
dei dizionari)
d1.clear() d1.copy() d1.items()
d1.kesy() d1.update(d2) d1.values()
Per eliminare un elemento da un dizionario si richiama alla funzione del
dizionario[chiave]
del d[2]
print(d)
{'ch': 'stringa ', 'nuovo': 3, (4, 3): 'ok'}
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 32 / 37
73. Tipi Contenitori
Tipo dict e str
Esercizi
Data la lista
l=[ciao, casa, cane, prima]
Utilizzando i descrittori di lista, creare un dizionario con chiavi le lettere
a,e,o e come valori la lista di parole che terminano con quella lettera
(per confrontare se due stringhe sono uguali si utilizza l'operatore ==)
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 33 / 37
74. Tipi Contenitori
Tipo dict e str
Esercizi
Data la lista
l=[ciao, casa, cane, prima]
Utilizzando i descrittori di lista, creare un dizionario con chiavi le lettere
a,e,o e come valori la lista di parole che terminano con quella lettera
(per confrontare se due stringhe sono uguali si utilizza l'operatore ==)
d={}
d[a]=[i for i in l if i[-1] == a ]
d[e]=[i for i in l if i[-1] == e ]
d[o]=[i for i in l if i[-1] == o ]
print(d)
{'a': ['casa', 'prima'], 'e': ['cane'], 'o': ['ciao']}
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 33 / 37
75. Tipi Contenitori
Tipo set
set
Il tipo set è usato per indicare gli insiemi di valori.
Per creare un insieme si utilizza la sintassi {elemento1, elemento2, . . . }
oppure si può utilizzare il costruttore set(lista) dove lista è un elemento
di tipo contenitore.
Gli insiemi non contengono elementi doppi (se ci sono doppioni in lista
ne viene preso soltanto uno) e non sono indicizzabili.
Per creare un insieme vuoto si utilizza la sintassi set().
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 34 / 37
76. Tipi Contenitori
Tipo set
set
Il tipo set è usato per indicare gli insiemi di valori.
Per creare un insieme si utilizza la sintassi {elemento1, elemento2, . . . }
oppure si può utilizzare il costruttore set(lista) dove lista è un elemento
di tipo contenitore.
Gli insiemi non contengono elementi doppi (se ci sono doppioni in lista
ne viene preso soltanto uno) e non sono indicizzabili.
Per creare un insieme vuoto si utilizza la sintassi set().
s=set( [ 2, 3, 6, programma, 2 ] )
print(s)
set([2, 3, 'programma ', 6])
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 34 / 37
77. Tipi Contenitori
Tipo set
Funzioni e operatori
Per conoscere la lunghezza di un insieme si utilizza il comando
len(insieme)
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 35 / 37
78. Tipi Contenitori
Tipo set
Funzioni e operatori
Per conoscere la lunghezza di un insieme si utilizza il comando
len(insieme)
Operatori
L'operatore di unione tra insiemi è | insieme1 | insieme2
L'operatore di intersezione è insieme1 insieme2
L'operatore di dierenza è - insieme1 - insieme2
L'operatore di dierenza simmetrica è ^ insieme1 ^ insieme2
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 35 / 37
79. Tipi Contenitori
Tipo set
Funzioni e operatori
Per conoscere la lunghezza di un insieme si utilizza il comando
len(insieme)
Operatori
L'operatore di unione tra insiemi è | insieme1 | insieme2
L'operatore di intersezione è insieme1 insieme2
L'operatore di dierenza è - insieme1 - insieme2
L'operatore di dierenza simmetrica è ^ insieme1 ^ insieme2
t=set( (3, 6, 9) )
t|s
set([2, 3, 6, 9, 'programma '])
ts
set([3, 6])
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 35 / 37
80. Tipi Contenitori
Tipo set
Metodi
Alcuni metodi degli insiemi (le variabili i1 e i2 rappresentano 2 insiemi, la
variabile a un elemento dell'insieme i1, la variabile b un elemento qualsiasi)
i1.add(b) i1.clear()
i1.copy() i1.difference(i2)
i1.intersection(i2) i1.isdisjoint(i2)
i1.issubset(i2) i1.issuperset(i2)
i1.remove(a) i1.symmetric_difference(i2)
i1.union(i2) i1.update(i2)
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 36 / 37
81. Tipi Contenitori
Tipo set
Esercizi
Contare quanti sono gli elementi diversi nella tupla:
k=(1,4,3,5,3,6,1,4,3,5,1,6,3,6,5,7,3,7,5,8,3,5,1,6,1)
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 37 / 37
82. Tipi Contenitori
Tipo set
Esercizi
Contare quanti sono gli elementi diversi nella tupla:
k=(1,4,3,5,3,6,1,4,3,5,1,6,3,6,5,7,3,7,5,8,3,5,1,6,1)
len(set(k))
7
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 37 / 37
83. Tipi Contenitori
Tipo set
Esercizi
Contare quanti sono gli elementi diversi nella tupla:
k=(1,4,3,5,3,6,1,4,3,5,1,6,3,6,5,7,3,7,5,8,3,5,1,6,1)
len(set(k))
7
Quali sono le cifre che mancano?
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 37 / 37
84. Tipi Contenitori
Tipo set
Esercizi
Contare quanti sono gli elementi diversi nella tupla:
k=(1,4,3,5,3,6,1,4,3,5,1,6,3,6,5,7,3,7,5,8,3,5,1,6,1)
len(set(k))
7
Quali sono le cifre che mancano?
tutti=set(range (10))
tutti - set(k)
set([0, 9, 2])
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 37 / 37