Sei sulla pagina 1di 56

INTRODUZIONE

A PYTHON
Cos’è Python?
Python è un linguaggio di
programmazione di alto livello nato
dalla mente di Guido van Rossum
nel 1991.
» Rossum ha lavorato per Google
dal 2005 al 2012
» Dal 2013 lavora per Dropbox
Dove si usa Python?
» Sviluppo Web
» Calcoli scientifici e numerici
» GUIs
» Sviluppo di software
» Bioinfomatica
L’Interprete
Python è un linguaggio tendenzialmente interpretato,
cioè:
» non produce un codice scritto in istruzioni per il
processore
» le istruzioni vengono elaborate “al volo”, cioè al
momento dell’esecuzione
0.
Shell e IDLE
L’interprete e l’ambiente di sviluppo
Avviare IDLE
Dal pulsante Start,
se non è già presente
tra i programmi recenti,
andate su
“Tutti i programmi”,
cercate la cartella
“Python 3.X” e poi “IDLE”
La shell interattiva
di Python
La shell interattiva, o interprete,
si presenta così:
>>>
Questo prompt dei comandi
indica che l’interprete attende
istruzioni da eseguire
Salvare ed
eseguire programmi
Dalla shell, cliccando su
File -> New File si apre un nuovo
file, che possiamo salvare
(File -> Save) o eseguire
(Run -> Run module)
1.
I primi comandi Python
Le operazioni di base
Le quattro operazioni
L’interprete Python valuta subito le espressioni.
Se, ad esempio scriviamo (con spazi o senza)
>>> 5 + 3
otteniamo
8
>>>
Variabili
Le variabili in Python si assegnano direttamente, senza
bisogno di una dichiarazione esplicita:
>>> x = 7
>>> y = 8
>>> z = True
Variabili
Posso conoscere il valore di una variabile
semplicemente digitando nell’interprete il suo nome
>>> x
7
>>> y
8
>>> z
True
Stringhe
Le stringhe possono essere inserite tra apici
‘Ciao’
o tra virgolette
“Ciao”
ma sarebbe meglio usare la seconda.
La lettura da tastiera
Per leggere da tastiera si usa la funzione input, che prende come
parametro il messaggio da stampare.
>>> cibo = input(“Cosa hai mangiato oggi?”)
Cosa hai mangiato oggi? Pizza
>>> cibo
‘Pizza’
La lettura da tastiera
input produce delle stringhe, se dobbiamo usarli come numeri
dobbiamo usare il casting:
>>> anni = int(input(“Quanti anni hai?”))
>>> altezza = float(input(“Quanto sei alto?”))
Il comando di stampa
L’istruzione di stampa è print(stringa)
Esempio:
>>> print(“Ciao mondo!”)
Ciao mondo!
>>>
Stringhe con parametri
La stringa da stampare può contenere dei placeholder,
usando
%s per le stringhe
%d per i numeri interi
%f per i numeri reali
Esempio di stringa con placeholder
>>> nome = input("Come ti chiami? ")
Come ti chiami? <inserite il vostro nome>
>>> print(“Ciao %s!” % nome)
Ciao Michele!
Esempio di stringa con più placeholder
>>> nome = input("Come ti chiami? ")
>>> anni = int(input("Quanti anni hai? "))
>>> print(“Ciao %s, hai %d anni!” % (nome,anni))
Ciao Michele, hai 30 anni!
Niente tipo?
Python è un linguaggio a tipizzazione dinamica, o
“debolmente tipizzato”.
Le variabili non hanno un tipo esplicito, ma l’interprete
deduce il tipo della variabile dall’operazione che
vogliamo fare su di essa.
Duck typing

“Se starnazza, deve


essere una papera”

“Se devo sommarlo,


deve essere un numero”
Importare librerie
In Python le librerie si importano con il comando
import nomeLibreria
Per generare un numero casuale, per esempio, si usa:
>>> import random
>>> random.seed()
>>> x = random.randrange(1,5)
>>> x
2
Altre librerie
» math per le funzioni matematiche
» os per le chiamate di sistema
Esercizi
Calcola la distanza tra un punto e l’origine, generando
casualmente le coordinate del punto.
2.
Istruzioni di controllo
Scelta e iterazione
Istruzioni di selezione
In Python, l’istruzione if ha una sintassi simile a quella
del C++, con qualche semplificazione:
>>> if condizione:
... istruzione
Istruzioni di selezione
I ... nel prompt dei comandi sono l’indicazione che ci
troviamo all’interno di un blocco (Python non usa le
parentesi graffe)
Tutte le istruzioni interne al blocco (quelle che
andrebbero tra le parentesi) devono essere indentate
con lo stesso numero di caratteri TAB o con lo stesso
numero di spazi
Blocchi
else
In Python, come in C++, si usa else per definire il blocco
di istruzioni da eseguire quando la condizione è falsa:
>>> anni = input(“Quanti anni hai?”)
>>> if anni >= 18:
... print(“Sei maggiorenne!”)
... else:
... print(“Sei minorenne!”)
elif
L’istruzione else if, usata in tanti linguaggi, in Python diventa elif
>>> if numero == 0:
... print(“Zero!”)
... elif numero > 0:
... print(“Positivo!”)
... else:
... print(“Negativo!”)
Condizioni composte
Per fare condizioni composte, Python usa le parole
chiave and, or, not.
Quando una variabile non è inizializzata, possiamo
usare il valore None
>>> if a == None or a == 10:
... print(“a is None or ten”)
Cicli: while
In Python ci sono solo due cicli, while e for:
>>> a = 0
>>> while a < 5:
... a += 1
... print(a)
Cicli: for
In Python il ciclo for lavora sempre su un oggetto iterabile, cioè una sequenza.
L’iterabile più usato per il ciclo for si ottiene attraverso la funzione range:
» range(stop) produce 0,1,…, stop-1
» range(start, stop)produce start, start+1, …, stop-1
Cicli: for
>>> for x in range(10):
... print(x)
0
1

9
Esercizi
1. Se fossi sulla luna, in questo momento, il tuo peso
sarebbe il 16.5% del tuo peso sulla terra. Calcola il
tuo peso lunare.
2. Se prendessi un chilo all’anno per i prossimi 15
anni, quanto peseresti ogni anno sulla luna? Scrivi
un programma che stampi il tuo peso lunare di
anno in anno.
Esercizi
3. Scrivi un programma per giocare a “Indovina il
numero”. Il programma deve generare un numero
casuale tra 1 e 100, chiedere all’utente di
indovinarlo e stampare “Troppo alto”, “Troppo
basso” o “Corretto”. L’utente ha a disposizione al
massimo 5 tentativi
3.
Funzioni
Funzioni
Le funzioni in Python si dichiarano
>>> def nomeFunzione (parametri):
... Corpo della funzione
Se nel corpo della funzione non è presente return, viene
implicitamente restituito None
Parametri
I parametri della funzione possono essere obbligatori o
opzionali:
» un parametro obbligatorio compare nella firma
def myFun(a): …
» in un parametro opzionale, nella firma della
funzione viene aggiunto il valore di default
def myFun(a=5): …
Parametri misti
Nel caso di funzioni con parametri obbligatori e
opzionali insieme, i primi compaiono sempre davanti:
» def myFun(a,b): OK
» def myFun(a=5, b=‘sette’): OK
» def myFun(a, b=3.5): OK
» def myFun(a=true, b): NO
Esercizi
Scrivi una funzione distanza che calcola la distanza tra
due punti le cui coordinate sono fornite come
parametro; se il secondo punto non è specificato,
assumi che sia l’origine.
4.
Strutture dati
Liste e dizionari
Liste
Le liste sono uno degli oggetti più utilizzati in Python, e
consistono in sequenze di elementi (anche di tipo diverso).
Si dichiarano con le parentesi quadre:
>>> spesa = []
>>> spesa
[]
Liste: aggiungere elementi
» Per aggiungere un elemento si usa la funzione append:
>>> spesa.append(‘mozzarella’)
>>> spesa
[‘mozzarella’]
>>> spesa.append(‘pane’)
>>> spesa.append(‘insalata’)
>>> spesa.append(‘salame’)
>>> spesa.append(‘formaggio’)
>>> spesa
[‘mozzarella’,‘pane’,insalata’,‘salame’,
‘formaggio’]
Accesso agli elementi
Come gli array in C++, l’accesso agli elementi si può fare
attraverso l’indice di posizione (0-based)
>>> spesa[3]
‘salame’
>>> spesa[4] = ‘asiago’
>>> spesa
[‘mozzarella’,‘pane’,insalata’,‘salame’
,‘asiago’]
Liste: togliere elementi
» Per togliere un elemento si usa il comando del:
>>> del spesa[0]
>>> spesa
[‘pane’,insalata’,‘salame’,‘asiago’]
Liste: cosa altri linguaggi non fanno
» Indici negativi, per ripartire dal fondo:
>>> spesa[-1]
‘asiago’
» Slice, cioè estrarre parte di una lista:
>>> spesa[1:3]
[‘insalata’, ‘salame’]
Liste: funzioni utili
» Lunghezza di una lista:
>>> len(spesa)
4
» Somma degli elementi di una lista
>>> sum([1,2,3,4,5])
15
» Massimo e minimo
>>> max([1,2,3]) >>> min([4,5,6])
Uso utile delle liste
La lista è iterabile, quindi posso usarla nei for:
>>> for prod in spesa:
... print(“Devo comprare %s” % prod)
Esercizi
1. Leggi una serie di numeri reali e salvali in una lista.
Calcolane poi la somma e la media.
2. Modifica il programma per giocare a “Indovina il
numero” salvando in una lista tutti i tentativi
effettuati dall’utente. Stampa la lista, al termine.
Dizionari
I dizionari sono collezioni di oggetti simili alle liste, ma
hanno la caratteristica di avere ogni elemento associato ad
una chiave.
>>> spesa_quantita = {}
>>> spesa_quantita[‘mozzarella’] = 3
>>> spesa_quantita[‘pane’] = ‘6 pezzi’
>>> spesa_quantita[‘formaggio’] = 1.5
Dizionari
>>> spesa_quantita
{'formaggio': 1.5,
'pane': '6 pezzi',
'mozzarella': 3}
Esercizi
3. Scrivi una funzione numeroDiGiorni(mese) che
restituisce il numero dei giorni di un dato mese.
Per esempio numeroDiGiorni(“febbraio”) restituirà
28.
Esercizi
4. Scrivi un programma che gestisca la lista dei libri
di una biblioteca, abbinando al titolo la quantità di
copie presenti. Genera poi un istogramma come
questo:
Harry Potter **** 4
Il signore degli anelli ** 2
Eragon ********** 10
Ricapitolando...
» Variabili con duck typing
» Cicli su elementi iterabili
» Funzioni con parametri opzionali e valori predefiniti
» Liste [] e dizionari{}