Guida A Python
Guida A Python
Questa guida spiega i rudimenti del linguaggio python. Python è stato creato nel 1989 da
Guido Van Rossum. E' stato scritto interamente in C, dal quale eredita la potenza che,
unita ad una sintassi molto semplice, fà di Python uno dei linguaggi ad alto livello tra i più
efficenti ed al tempo stesso semplici da apprendere.
Python appartiene alla categoria dei linguaggi interpretati, al contrario del C, infatti, i
sorgenti non vengono compilati, ma eseguiti da un apposito programma chiamato
interprete. Nella maggior parte delle distribuzioni di Linux l'interprete è già incluso, per gli
utenti Windows, invece, è necessario scaricarlo dal sito ufficiale www.python.org, ove è
possibile trovare una ricca documentazione in inglese.
Durante l'installazione verranno copiati sul nostro hard disk, l'interprete, un ottimo editor
(IDLE) e una ricca dotazione di librerie (moduli). Queste ultime spaziano ogni ambito: dal
web alle GUI (Grafical User Interface), dai gestionali ai videogiochi.
Per eseguire un programma in Python è sufficente creare un file testuale, con IDLE o
qualunque altro editor di testi, scrivere il codice sorgente, salvarlo in un file con estensione
".py" ed eseguire il file ottenuto come una normale applicazione. Se stiamo scrivendo un
programma con interfaccia grafica e non vogliamo che venga aperta inutilmente la console
possiamo dare al file l'estensione ".pyw".
Fatte queste premesse, iniziamo ad analizzare il linguaggio vero e proprio, ovvero la sua
sintassi e le sue regole.
PRIMO APPROCCIO
Una tradizione vuole che il primo programma sia quello che stampa a video la stringa
"Ciao mondo". Ecco la sua realizzazione in python:
#Il mio primo programma in python
print "Ciao mondo"
input ()
La prima riga inizia col carattere # : è un commento. I commenti vengono ignorati
dall'interprete, il loro scopo è quello di chiarire parti di codice sorgente mediante un
linguaggio comprensibile a tutti. Nella seconda riga è presente l'istruzione print. Essa
stampa a video una stringa di caratteri. La sua sintassi è:
print "Stringa"
L'istruzione print può avere anche più di un parametro:
print "param1",param2","paramN",...
Inoltre si possono creare righe vuote usando print senza parametri:
#Crea una linea vuota
print
Solitamente le linee vuote vengono usate per rendere più ordinato l'output dei programmi.
Infine l'ultima riga contiene la chiamata alla funzione input (). Questa funzione ha il
compito di bloccare il programma e di attendere l'input dell'utente. Nel nostro caso fa si
che il terminale non si chiuda dopo aver stampato a video "Ciao mondo", impedendone
così la lettura. Se eseguite i programmi da linea di comando potete ometterla
tranquillamente. L'interprete python esegue i programmi riga per riga fino alla fine del
sorgente. Eseguiamo il seguente codice:
print "trentatrè trentini"
print "trotterellando"
print "andarono a Trento"
input ()
Il suo effetto è stampare "trentatrè trentini", "trotterellando", "andarono a trento", per poi
attendere l'input dell'utente e terminare.
VARIABILI ED INPUT
Gli operatori stabiliscono relazioni tra dati. Sono di 2 tipi: aritmetici e relazionali. Operatori
aritmetici:
+ Addizione
- Sottrazione
* Moltiplicazione
/ Divisione
** Elevamento a potenza
Essi corrispondono alle operazioni matematiche di base. Ecco un esempio del loro utilizzo:
print "Inserisci a"
a=input ()
print "Inserisci b"
b=input ()
print "Somma:"
print a+b
print "Differenza:"
print a-b
print "Prodotto:"
print a*b
print "Quoziente:"
print a/b
print "Elevamento a potenza:"
print a**b
input ()
E' possibile,inoltre, raggruppare operazioni mediante parentesi tonde. Come ci insegna
l'aritmetica, le operazioni contenute nelle parentesi più interne hanno ordine di precedenza
rispetto alle altre. Ad esempio:
#stampa 49
print (2+3*3)+4**2+2*(6+5)
input ()
Operatori relazionari:
== Ugualianza (da non confondere con l'operatore di assegnamento)
!= Disugualianza
< Minore
> Maggiore
<= Minore o uguale
>= Maggiore o uguale
Questi sono usati per esprimere condizioni, come vedremo nei prossimi capitoli. Le parole
chiave sono elementi riservati al linguaggio, che costituiscono la sua semantica. Nulla di
quanto è definito dal programmatore (dati, funzioni, etc...) può coincidere con una parola
chiave, pena una segnalazione di errore da parte del compilatore. In python le parole
chiave sono 28:
and assert break
class continue def
del elif else
except exec finally
for from lobal
if import in
is lambda not
or pass print
raise return try
while
ISTRUZIONI CONDIZIONALI
All'interno di una istruzione condizionale viene valutata la condizione: se risulta vera, viene
eseguito un blocco di istruzioni, altrimenti ne viene eseguito un altro. La sintassi base è la
seguente:
if condizione :
#blocco d'istruzioni
else :
#altrimenti...
L'istruzione if valuta la condizione e nel caso in cui fosse vera eseguirebbe il blocco
d'istruzioni. L'istruzione else introduce il secondo blocco, ovvero quello che viene eseguito
nel caso in cui la condizione sia falsa. I blocchi non hanno segni di apertura e chiusura
come in altri linguaggi, per delimitarli, infatti, bisogna obbligatoriamente indentarli verso
destra di una misura a piacere. Questo metodo rende il codice python molto ordinato.
Questa regola sta alle basi del linguaggio Python, quindi è necessario ricordarsi che in
ogni costrutto in cui vi sono blocchi di istruzioni è richiesta l'indentazione. Le condizioni si
esprimono solitamente utilizzando gli operatori relazionari, elencati nel capitolo
precedente. Vediamo un esempio:
print "Quanti anni hai ?"
eta=input ()
if eta<18 :
print "Sei minorenne"
else :
print "Sei maggiorenne"
input ()
Questo programma prende in input l'età , e attraverso il costrutto if-else determina se
l'utente è minorenne o maggiorenne. In molti casi, tuttavia, è necessario esprimere più di
una condizione. Per questo esiste il costrutto if-elif-else che permette di valutare infinite
condizioni. Eccone la sintassi:
if condizione :
#blocco di istruzioni 1
elif condizione 2 :
#blocco di istruzioni 2
elif condizione 3 :
#blocco di istruzioni 3
elif condizione N :
#blocco di istruzioni N
else :
#altrimenti...
In una istruzione di questo tipo vengono valutate tutte le condizioni partendo dalla prima.
Nel caso in cui nessuna delle condizioni risulti vera, vine eseguito il blocco di istruzioni
introdotto dall'else.Vediamo un esempio anche per questa tipologia:
#numero --> giorno della settimana corrispondente
num=input ()
if num==1 :
print "Lunedì"
elif num==2 :
print "Martedì"
elif num==3 :
print "Mercoledì"
elif num==4 :
print "Giovedì"
elif num==5 :
print "Venerdì"
elif num==6 :
print "Sabato"
elif num==7 :
print "Domenica"
else :
print "Giorno inesistente"
input ()
Viene confrontato l'input dell'utente con tutte le possibili alternative e viene eseguito il
blocco corrispondente a quella vera, ovvero è stampato il giorno corrispondente. Nel caso
nessuna condizione risultasse vera, viene eseguito il blocco seguente l'else.
ISTRUZIONI ITERATIVE
Le istruzioni iterative o cicli permettono di ripetere un certo numero di volte un dato blocco
d'istruzioni. In python ne esistono 2 tipi: i cicli for e i cicli while. Vediamo i primi. I cicli for si
basano sull'incremento di un dato numerico, da 0 fino ad un certo limite definito dal
programmatore (range). Ad ogni incremento il blocco d'istruzioni viene ripetuto. La sintassi
è la seguente:
for intero in range (n) :
#blocco di istruzioni
Dove intero deve essere precedentemente inizializzato a 0 e n rappresenta il numero di
ripetizioni da effettuare. Si tratta dell'utilizzo più semplice di un ciclo for, basato sulla
funzione range (n) che ritorna i valori compresi tra 0 e n-1. Esistono altri utilizzi di questo
ciclo che vedremo più avanti, in relazione ad altri argomenti. I cicli while, invece, vengono
usati quando non si conosce in anticipo quante iterazioni bisognerà compiere. Per sapere
il numero di iterazioni viene valutata una condizione. Finchè essa risulta vera, il blocco di
istruzioni continua ad essere ripetuto. Ecco la sintassi:
while condizione :
#blocco di istruzioni
A questo punto vediamo un esempio pratico riguardo l'utilizzo delle iterazioni. Supponiamo
di dover stampare 100 volte la stringa "Loop!":
#versione con ciclo for
int=0
for int in range (100) :
print "Loop!"
input ()
LISTE
Una lista rappresenta una collezione di dati ordinati. Al contrario di altri linguaggi, in python
le liste possono contenere dati eterogenei. Ecco un esempio di lista in python:
lista=[1,2,"a","b"]
In generale la sintassi è:
nomelista=[elemento 0,elemento 1,elemento 2,elemento N]
Ricordando che il primo elemento di una lista ha indice 0, possiamo facilmente stamparne
a video gli elementi come se fossero normali variabili:
lista=[5,50,"cane","gatto"]
print lista [0]
print lista [1]
print lista [2]
print lista [3]
input ()
Per conoscere il numero di elementi di una lista si può usufruire della funzione len (lista).
Esempio:
#determina la lunghezza della lista
lista=[1,2,3,4,5,6,7,8]
print len (lista)
input ()
L'output di questo frammento di codice sarà, ovviamente, il numero 8. Si noti che la
funzione len () non funziona solo con liste, ma anche con stringhe di testo. Attraverso
l'istruzione del è possibile cancellare un elemento da una lista. Esempio:
#cancella il secondo elemento della lista
lista=["mario","piero"]
del lista [1]
input ()
Altre interessanti opzioni sono i metodi .sort () e .reverse (). Essi permettono
rispettivamente di ordinare in maniera crescente e decrescente gli elementi di una lista. Ad
esempio:
lista=[15,5,10,20]
lista.sort () # 5,10,15,20
lista.reverse () # 20,15,10,5
input ()
FUNZIONI
Fino ad ora ci siamo serviti unicamente di funzioni predefinite. Python, tuttavia, permette di
definire funzioni proprie. Una funzione è composta essenzialmente da:
o Parametri in ingresso
o Valore di ritorno
Fino ad ora ci siamo serviti unicamente di funzioni predefinite. Python, tuttavia, permette di
definire funzioni proprie. Una funzione è composta essenzialmente da:
o Parametri in ingresso
o Valore di ritorno