Sei sulla pagina 1di 10

INTRODUZIONE

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

Una variabile rappresenta un dato, numerico o alfanumerico, definito dal programmatore o


dall'utente. In python, al contrario di altri linguaggi, le variabili non vanno dichiarate ma
inizializzate direttamente. La sintassi per farlo è:
nome=contenuto
Il simbolo = vine chiamato operatore di assegnamento. Il nome è a piacere, ma deve
obbligatoriamente iniziare con una lettera o con il carattere "_". Inoltre python è case-
sensitive, cioè distingue le minuscole dalle maiuscole. Quindi "mare" è diverso da
"MARE". Ora vediamo un esempio:
numero=10
stringa="Pippo"
print numero
print stringa
input ()
Da questo semplice sorgente possiamo notare che se il contenuto di una variabile è una
stringa,questa va scritta tra virgolette,se è un numero no. Vediamo, inoltre, che l'istruzione
print può stampare anche il contenuto di una variabile, passando quest'ultima come
parametro. Utilizzando l'operatore di assegnamento possiamo giocherellare a nostro
piacimento:
a=4 #a vale 4
b=0 #b vale 0
c=8 #c vale 8
a=c #ora a vale 8
c=b #ora c vale 0
b=a #ora b vale 8
print a,b,c #stampa 8,8,0
input ()
Tutto questo è molto interessante ma le variabili vengono sempre definite dal
programmatore. Vediamo come farle definire all'utente. Abbiamo già incontrato la funzione
input (). Ora associamola ad una variabile:
#Eco di un numero
print "Inserisci un numero:"
num=input ()
print "Numero inserito:"
print num
input ()
In questo programma associamo alla variabile num direttamente la funzione input (),
pertanto il valore inserito dall'utente viene automaticamente memorizzato in num. La
funzione input () ha tuttavia un difetto, quello di accettare in input solo dati numerici. Per
ricevere delle stringhe si usa raw_input ():
#Eco di una stringa
print "Inserisci una stringa:"
str=raw_input ()
print "Stringa inserita:"
print str
input ()
Come facilmente si può notare input () è stato sostituito da raw_input ().

OPERATORI E PAROLE CHIAVE

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

Nel corso della guida vedremo di trattare le principali.

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 ()

#versione con ciclo while


int=0
while int<100 :
print "Loop!"
int=int+1
input ()
L'output di questi programmi è il medesimo, cambia solamente la loro logica. Nel primo
caso il numero di iterazioni è già definito. Nel secondo caso è definita la condizione
int<100. L'istruzione int=int+1 fa si che ad ogni ripetizione int sia incrementato di un unità.
Pertanto dopo 100 ripetizioni la condizione diviene falsa e il ciclo termina. Grazie a while
possiamo creare cicli infiniti utilizzando questa sintassi:
while True :
#blocco di istruzioni
La condizione risulta sempre vera, quindi il blocco di istruzioni viene ripetuto all'infinito.
Spesso si usa racchiudere interi programmi all'interno di cicli infiniti in modo che, una volta
terminati, l'esecuzione riprenda dall'inizio. E' altresì importante menzionare l'istruzione
break. Essa permette di uscire bruscamente da un ciclo, solitamente all'avverarsi di una
determinata condizione. Vediamo quest'esempio:
while True :
print "Inserire la password:"
pass=raw_input ()
if pass=="abcdef" :
break
print "Password esatta!"
input ()
Il ciclo infinito fa si che il programma continui a chiedere la password. Se però essa è
uguale ad "abcdef" il ciclo termina grazie a break e il flusso del programma riprende
normalmente.

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

Questa 8^ lezione mostra le facilità di approccio a funzioni e procedure in Python.


L'obiettivo è quello di insegnare al lettore come dichiarare e richiamare routine.

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

Qui sotto la sintassi per definire una funzione:


def nomefunzione (parametro1,parametro2,parametroN) :
#elaborazione
return valorediritorno
L’esempio seguente mostra come creare e richiamare una funzione che calcola il quadrato
del numero passato in ingresso:
#definizione della funzione
def quadrato (numero) :
return numero**2
#chiamata alla funzione
print quadrato (5)
input ()
In questo caso il valore di ritorno sarà 25, ovvero 5 al quadrato. È possibile dichiarare
funzioni con parametri facoltativi. Per rendere tali i parametri è sufficiente inizializzarli.
Esempio:
def funzione (x,y=0) #y è facoltativo
Python permette l’utilizzo di funzioni prive di parametri e valore di ritorno, dette procedure,
da implementare così come segue:
#creo la procedura
def visualizzamenu ()
print "1)Scrivi"
print "2)Leggi"
#ora la richiamo
visualizzamenu ()
Questa procedura stampa a video un esempio di menu. È sempre buona regola dividere i
propri programmi in funzioni e procedure. In questo modo il codice è più ordinato e
leggibile e, di conseguenza, più facile da modificare per chi lo scrive e per tutti gli altri.

SCRIVERE E LEGGERE SUI FILE

Questa 8^ lezione mostra le facilità di approccio a funzioni e procedure in Python.


L'obiettivo è quello di insegnare al lettore come dichiarare e richiamare routine.

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

Qui sotto la sintassi per definire una funzione:


def nomefunzione (parametro1,parametro2,parametroN) :
#elaborazione
return valorediritorno
L’esempio seguente mostra come creare e richiamare una funzione che calcola il quadrato
del numero passato in ingresso:
#definizione della funzione
def quadrato (numero) :
return numero**2
#chiamata alla funzione
print quadrato (5)
input ()
In questo caso il valore di ritorno sarà 25, ovvero 5 al quadrato. È possibile dichiarare
funzioni con parametri facoltativi. Per rendere tali i parametri è sufficiente inizializzarli.
Esempio:
def funzione (x,y=0) #y è facoltativo
Python permette l’utilizzo di funzioni prive di parametri e valore di ritorno, dette procedure,
da implementare così come segue:
#creo la procedura
def visualizzamenu ()
print "1)Scrivi"
print "2)Leggi"
#ora la richiamo
visualizzamenu ()
Questa procedura stampa a video un esempio di menu. È sempre buona regola dividere i
propri programmi in funzioni e procedure. In questo modo il codice è più ordinato e
leggibile e, di conseguenza, più facile da modificare per chi lo scrive e per tutti gli altri.

CIAOA TUTTI XHDWEB…Alex_Best