3. Corso
Python
Riccardo
Introduzione
Tipi
Numerici
Variabili
Tipo Stringa
Tipi
Contenitori
Esercizi
Python
Python è un linguaggio di programmazione ad alto livello.
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", altrimenti ricercarlo tra i programmi.
riccardo@riccardo-GV62-7RE:~$ python
Python 2.7.12 (default, Dec 4 2017, 14:50:18)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license"
for more information.
>>>
Riccardo (Collegio don Mazza) Corso Python 17 Maggio 2018 3 / 36
17. Corso
Python
Riccardo
Introduzione
Tipi
Numerici
Variabili
Tipo Stringa
Tipi
Contenitori
Esercizi
Variabili
Operazioni con varibili
Per visualizzare il valore contenuto in una variabile si usa il
comando print() con o senza parentesi
print Ciao
6.2
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 Python 17 Maggio 2018 11 / 36
24. Corso
Python
Riccardo
Introduzione
Tipi
Numerici
Variabili
Tipo Stringa
Tipi
Contenitori
Esercizi
Tipi Stringa
Metodi per le stringhe
I metodi sono particolari funzioni 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 trasformare una stringa in maiuscolo o minuscolo si
utilizzano i metodi .lower() e .upper()
Aprite la Mente.upper()
'APRITE LA MENTE'
Riccardo (Collegio don Mazza) Corso Python 17 Maggio 2018 14 / 36
25. Corso
Python
Riccardo
Introduzione
Tipi
Numerici
Variabili
Tipo Stringa
Tipi
Contenitori
Esercizi
Tipi Stringa
Metodi per le stringhe
I metodi sono particolari funzioni 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 trasformare una stringa in maiuscolo o minuscolo si
utilizzano i metodi .lower() e .upper()
Aprite la Mente.upper()
'APRITE LA MENTE'
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 Python 17 Maggio 2018 14 / 36
30. Corso
Python
Riccardo
Introduzione
Tipi
Numerici
Variabili
Tipo Stringa
Tipi
Contenitori
Esercizi
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 Python 17 Maggio 2018 16 / 36
32. Corso
Python
Riccardo
Introduzione
Tipi
Numerici
Variabili
Tipo Stringa
Tipi
Contenitori
Esercizi
Tipi Contenitori
Tipo list
list
Il tipo list serve per rappresentare le collezioni di oggetti o array
Le liste sono mutabili e indicizzabili
Si può creare una lista racchiudendo gli elementi tra parentesi
quadre ([ , ]) e separando gli elementi da virgole
[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 Python 17 Maggio 2018 17 / 36
34. Corso
Python
Riccardo
Introduzione
Tipi
Numerici
Variabili
Tipo Stringa
Tipi
Contenitori
Esercizi
Tipo list
Indicizzazione, Striding e Slicing
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'
Lo striding serve per scorrere gli elementi di una lista
La sintassi è lista[inizio:ne:passo] dove inizio indica il primo
indice da considerare, ne il primo da escludere e passo
(può essere omesso, ma in questo caso si parla di slicing) di
quanto saltare da un indice al successivo
L[1:3]
['stasera', 'divertiamoci']
L[:-1:2]
['da', 'divertiamoci']
Riccardo (Collegio don Mazza) Corso Python 17 Maggio 2018 18 / 36
37. Corso
Python
Riccardo
Introduzione
Tipi
Numerici
Variabili
Tipo Stringa
Tipi
Contenitori
Esercizi
Tipo list
Copia
A causa della mutabilità, per copiare una lista, non si usa
l'operatore di assegnamento, ma lo Slicing
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 Python 17 Maggio 2018 20 / 36
38. Corso
Python
Riccardo
Introduzione
Tipi
Numerici
Variabili
Tipo Stringa
Tipi
Contenitori
Esercizi
Tipo list
Funzioni
Per aggiungere un elemento in fondo a una lista si utilizza il
metodo lista.append(elemento), mentre per estendere una lista
con un'altra si utilizza il metodo lista.extend(concatenare)
M=[La, Matematica]
M.extend([non,e'])
print M
['La', 'Matematica', 'non', e']
M.append(affascinante)
print M
['La', 'Matematica', 'non', e', 'affascinante']
Riccardo (Collegio don Mazza) Corso Python 17 Maggio 2018 21 / 36
39. Corso
Python
Riccardo
Introduzione
Tipi
Numerici
Variabili
Tipo Stringa
Tipi
Contenitori
Esercizi
Tipo list
Funzioni
Per aggiungere un elemento in fondo a una lista si utilizza il
metodo lista.append(elemento), mentre per estendere una lista
con un'altra si utilizza il metodo lista.extend(concatenare)
M=[La, Matematica]
M.extend([non,e'])
print M
['La', 'Matematica', 'non', e']
M.append(affascinante)
print M
['La', 'Matematica', 'non', e', 'affascinante']
Per cancellare un elemento da una lista si utilizza la funzione
del lista[indice]
del M[2]
print M
['La', 'Matematica', e', 'affascinante']
Riccardo (Collegio don Mazza) Corso Python 17 Maggio 2018 21 / 36
41. Corso
Python
Riccardo
Introduzione
Tipi
Numerici
Variabili
Tipo Stringa
Tipi
Contenitori
Esercizi
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 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 Python 17 Maggio 2018 22 / 36
42. Corso
Python
Riccardo
Introduzione
Tipi
Numerici
Variabili
Tipo Stringa
Tipi
Contenitori
Esercizi
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 (( , ))
Per creare una tupla con un solo elemento è necessario mettere
la virgola dopo lo stesso
Riccardo (Collegio don Mazza) Corso Python 17 Maggio 2018 23 / 36
43. Corso
Python
Riccardo
Introduzione
Tipi
Numerici
Variabili
Tipo Stringa
Tipi
Contenitori
Esercizi
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 (( , ))
Per creare una tupla con un solo elemento è necessario mettere
la virgola dopo lo stesso
(tupla, numero, 1)
('tupla', 'numero', 1)
(5,)
(5,)
Riccardo (Collegio don Mazza) Corso Python 17 Maggio 2018 23 / 36
45. Corso
Python
Riccardo
Introduzione
Tipi
Numerici
Variabili
Tipo Stringa
Tipi
Contenitori
Esercizi
Tipo tuple
Indicizzazione e Slicing
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 Python 17 Maggio 2018 24 / 36
46. Corso
Python
Riccardo
Introduzione
Tipi
Numerici
Variabili
Tipo Stringa
Tipi
Contenitori
Esercizi
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
Riccardo (Collegio don Mazza) Corso Python 17 Maggio 2018 25 / 36
47. Corso
Python
Riccardo
Introduzione
Tipi
Numerici
Variabili
Tipo Stringa
Tipi
Contenitori
Esercizi
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
d={2:[ciao, [] ], ch:5, (4, 3):ok}
print d
{2: ['ciao', []], 'ch': 5, (4, 3): 'ok'}
Riccardo (Collegio don Mazza) Corso Python 17 Maggio 2018 25 / 36
49. Corso
Python
Riccardo
Introduzione
Tipi
Numerici
Variabili
Tipo Stringa
Tipi
Contenitori
Esercizi
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 Python 17 Maggio 2018 26 / 36
50. Corso
Python
Riccardo
Introduzione
Tipi
Numerici
Variabili
Tipo Stringa
Tipi
Contenitori
Esercizi
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 Python 17 Maggio 2018 26 / 36
52. Corso
Python
Riccardo
Introduzione
Tipi
Numerici
Variabili
Tipo Stringa
Tipi
Contenitori
Esercizi
Tipo dict
Funzioni
Per avere la lista di tutte le chiavi si ricorre al metodo
dizionario.keys() Per visualizzare la lista dei valori si utilizza il
metodo dizionario.values()
d.values()
[['ciao', []], 'stringa', 3, 'ok']
d.keys()
[2, 'ch', 'nuovo', (4, 3)]
d.values()
[['ciao', []], 'stringa', 3, 'ok']
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 Python 17 Maggio 2018 27 / 36
53. Corso
Python
Riccardo
Introduzione
Tipi
Numerici
Variabili
Tipo Stringa
Tipi
Contenitori
Esercizi
Tipi Contenitori
Tipo set
set
Il tipo set è usato per indicare gli insiemi di valori
Per creare un insieme si utilizza il comando 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
Riccardo (Collegio don Mazza) Corso Python 17 Maggio 2018 28 / 36
54. Corso
Python
Riccardo
Introduzione
Tipi
Numerici
Variabili
Tipo Stringa
Tipi
Contenitori
Esercizi
Tipi Contenitori
Tipo set
set
Il tipo set è usato per indicare gli insiemi di valori
Per creare un insieme si utilizza il comando 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
s=set( [ 2, 3, 6, programma, 2 ] )
print s
set([2, 3, 'programma', 6])
Riccardo (Collegio don Mazza) Corso Python 17 Maggio 2018 28 / 36
56. Corso
Python
Riccardo
Introduzione
Tipi
Numerici
Variabili
Tipo Stringa
Tipi
Contenitori
Esercizi
Tipo set
Funzioni
Per conoscere la lunghezza di un insieme si utilizza il comando
len(insieme)
len(s)
4
L'operatore di unione tra insiemi è insieme | insieme
L'operatore di intersezione è insieme insieme
L'operatore di dierenza è insieme - insieme
L'operatore di dierenza simmetrica è insieme^insieme
t=set( (3, 6, 9) )
t|s
set([2, 3, 6, 9, 'programma'])
ts
set([3, 6])
Riccardo (Collegio don Mazza) Corso Python 17 Maggio 2018 29 / 36
75. Corso
Python
Riccardo
Introduzione
Tipi
Numerici
Variabili
Tipo Stringa
Tipi
Contenitori
Esercizi
Esercizi
Tipo dict e str
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 Python 17 Maggio 2018 36 / 36