SlideShare a Scribd company logo
1 of 84
Download to read offline
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
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
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
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
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
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
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
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
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
Tipi Numerici
Esercizi
 7%5
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 7 / 37
Tipi Numerici
Esercizi
 7%5
2
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 7 / 37
Tipi Numerici
Esercizi
 7%5
2
 int (11/3)
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 7 / 37
Tipi Numerici
Esercizi
 7%5
2
 int (11/3)
3
Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 7 / 37
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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

More Related Content

What's hot (11)

2008 python
2008 python2008 python
2008 python
 
Javaday 2006: Java 5
Javaday 2006: Java 5Javaday 2006: Java 5
Javaday 2006: Java 5
 
Le basi di Pytthon 3 - Fondamenti n.1
Le basi di Pytthon 3 - Fondamenti n.1Le basi di Pytthon 3 - Fondamenti n.1
Le basi di Pytthon 3 - Fondamenti n.1
 
Coding class da scratch a python
Coding class  da scratch a pythonCoding class  da scratch a python
Coding class da scratch a python
 
Programmazione
ProgrammazioneProgrammazione
Programmazione
 
2011.02.19 Introducing F#
2011.02.19 Introducing F#2011.02.19 Introducing F#
2011.02.19 Introducing F#
 
T4 tipizzazione
T4 tipizzazioneT4 tipizzazione
T4 tipizzazione
 
Introduzione a Python
Introduzione a PythonIntroduzione a Python
Introduzione a Python
 
Programmazione Funzionale per tutti
Programmazione Funzionale per tuttiProgrammazione Funzionale per tutti
Programmazione Funzionale per tutti
 
Corso Programmazione Java Base
Corso Programmazione Java BaseCorso Programmazione Java Base
Corso Programmazione Java Base
 
T7 librerie
T7 librerieT7 librerie
T7 librerie
 

Similar to Corso python 2020 - Lezione 1

Python nel primo biennio della scuola superiore
Python nel primo biennio della scuola superiorePython nel primo biennio della scuola superiore
Python nel primo biennio della scuola superioreguestc11532
 
Pycrashcourse2.0
Pycrashcourse2.0Pycrashcourse2.0
Pycrashcourse2.0rik0
 
Pycrashcourse3.1
Pycrashcourse3.1Pycrashcourse3.1
Pycrashcourse3.1rik0
 
Pycrashcourse3.0
Pycrashcourse3.0Pycrashcourse3.0
Pycrashcourse3.0rik0
 
TypeScript, ovvero JavaScript che "non si rompe"
TypeScript, ovvero JavaScript che "non si rompe"TypeScript, ovvero JavaScript che "non si rompe"
TypeScript, ovvero JavaScript che "non si rompe"BENTOSA
 
Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!Marcello Missiroli
 
Overload di funzioni in Rust - Come ho imparato a vivere felicemente senza
Overload di funzioni in Rust - Come ho imparato a vivere felicemente senzaOverload di funzioni in Rust - Come ho imparato a vivere felicemente senza
Overload di funzioni in Rust - Come ho imparato a vivere felicemente senzaNicola Musatti
 
Aspettando Go.2 - Meetup golang milano - 27 settembre 2018
Aspettando Go.2 - Meetup golang milano - 27 settembre 2018Aspettando Go.2 - Meetup golang milano - 27 settembre 2018
Aspettando Go.2 - Meetup golang milano - 27 settembre 2018r3vit
 
Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)STELITANO
 
Ecdl modulo 1 -Fondamenti
Ecdl modulo 1 -FondamentiEcdl modulo 1 -Fondamenti
Ecdl modulo 1 -FondamentiAngela Cristina
 
Algoritmi e Calcolo Parallelo 2012/2013 - Analisi degli Algoritmi
Algoritmi e Calcolo Parallelo 2012/2013 - Analisi degli AlgoritmiAlgoritmi e Calcolo Parallelo 2012/2013 - Analisi degli Algoritmi
Algoritmi e Calcolo Parallelo 2012/2013 - Analisi degli AlgoritmiPier Luca Lanzi
 
Lezioni di programmazione in c le stringhe By Cristian Randieri - www.intelli...
Lezioni di programmazione in c le stringhe By Cristian Randieri - www.intelli...Lezioni di programmazione in c le stringhe By Cristian Randieri - www.intelli...
Lezioni di programmazione in c le stringhe By Cristian Randieri - www.intelli...Cristian Randieri PhD
 
A brief intro to TDD for a JUG-TAA event
A brief intro to TDD for a JUG-TAA eventA brief intro to TDD for a JUG-TAA event
A brief intro to TDD for a JUG-TAA eventPietro Di Bello
 

Similar to Corso python 2020 - Lezione 1 (20)

Python nel primo biennio della scuola superiore
Python nel primo biennio della scuola superiorePython nel primo biennio della scuola superiore
Python nel primo biennio della scuola superiore
 
Pycrashcourse2.0
Pycrashcourse2.0Pycrashcourse2.0
Pycrashcourse2.0
 
Algorithmist guide II
Algorithmist guide IIAlgorithmist guide II
Algorithmist guide II
 
Riepilogo Java C/C++
Riepilogo Java C/C++Riepilogo Java C/C++
Riepilogo Java C/C++
 
Pycrashcourse3.1
Pycrashcourse3.1Pycrashcourse3.1
Pycrashcourse3.1
 
Pycrashcourse3.0
Pycrashcourse3.0Pycrashcourse3.0
Pycrashcourse3.0
 
TypeScript, ovvero JavaScript che "non si rompe"
TypeScript, ovvero JavaScript che "non si rompe"TypeScript, ovvero JavaScript che "non si rompe"
TypeScript, ovvero JavaScript che "non si rompe"
 
Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!
 
Introduzione a GNU Octave
Introduzione a GNU OctaveIntroduzione a GNU Octave
Introduzione a GNU Octave
 
Overload di funzioni in Rust - Come ho imparato a vivere felicemente senza
Overload di funzioni in Rust - Come ho imparato a vivere felicemente senzaOverload di funzioni in Rust - Come ho imparato a vivere felicemente senza
Overload di funzioni in Rust - Come ho imparato a vivere felicemente senza
 
Aspettando Go.2 - Meetup golang milano - 27 settembre 2018
Aspettando Go.2 - Meetup golang milano - 27 settembre 2018Aspettando Go.2 - Meetup golang milano - 27 settembre 2018
Aspettando Go.2 - Meetup golang milano - 27 settembre 2018
 
Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)
 
Tutorial Matlab 2009
Tutorial Matlab 2009Tutorial Matlab 2009
Tutorial Matlab 2009
 
Java lezione2
Java lezione2Java lezione2
Java lezione2
 
Ecdl modulo 1 -Fondamenti
Ecdl modulo 1 -FondamentiEcdl modulo 1 -Fondamenti
Ecdl modulo 1 -Fondamenti
 
Algoritmi e Calcolo Parallelo 2012/2013 - Analisi degli Algoritmi
Algoritmi e Calcolo Parallelo 2012/2013 - Analisi degli AlgoritmiAlgoritmi e Calcolo Parallelo 2012/2013 - Analisi degli Algoritmi
Algoritmi e Calcolo Parallelo 2012/2013 - Analisi degli Algoritmi
 
Lezioni di programmazione in c le stringhe By Cristian Randieri - www.intelli...
Lezioni di programmazione in c le stringhe By Cristian Randieri - www.intelli...Lezioni di programmazione in c le stringhe By Cristian Randieri - www.intelli...
Lezioni di programmazione in c le stringhe By Cristian Randieri - www.intelli...
 
A brief intro to TDD for a JUG-TAA event
A brief intro to TDD for a JUG-TAA eventA brief intro to TDD for a JUG-TAA event
A brief intro to TDD for a JUG-TAA event
 
Pycon Jungle
Pycon JunglePycon Jungle
Pycon Jungle
 
Pycon
PyconPycon
Pycon
 

Corso python 2020 - Lezione 1

  • 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
  • 10. Tipi Numerici Esercizi 7%5 Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 7 / 37
  • 11. Tipi Numerici Esercizi 7%5 2 Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 7 / 37
  • 12. Tipi Numerici Esercizi 7%5 2 int (11/3) Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 7 / 37
  • 13. Tipi Numerici Esercizi 7%5 2 int (11/3) 3 Riccardo (Collegio don Mazza) Corso di Python 31 Marzo 2020 7 / 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