In questo capitolo intendo elencare i vari tipi di istruzioni presenti
in python. Esse sono suddivise in categorie ben precise. Particolare
attenzione verra' posta per i costrutti che permettono di controllare il
flusso di controllo delle istruzioni.
Riporto di seguito un elenco dei tipi di istruzioni presenti nel
linguaggio:
è sempre buona norma commentare il codice, e quindi anche python offre
una sintassi per i commenti. Il carattere che identifica il commento è
: "#". esso si può usare all'inizio della riga oppure
alla fine di una istruzione.
In python è possibile assegnare un valore ad una variabile mediante
l'operatore "=". Ricordiamo che le variabili in python
NON devono essere dichiarate, ma esse nascono durante la prima istruzione
di assegnamento (esattamente come avveniva nel vecchio Basic). Nel momento
del primo assegnamento viene anche deciso il tipo della variabile. Una
singolare possibilità offerta da python è rappresentata da l'assegnamento
multiplo nel quale si possono inizializzare più variabili direttamente
sulla stessa riga di codice. Per capire quest'ultimo concetto basta
osservare l'esempio sottostante:
>>> a = 'viva python' >>> b =
2 >>> c, d = 'su', 'html.it' # assegnamento
multiplo >>> print a,b,c,d viva python 2 su html.it
Ricordiamo che le regole da seguire nella scelta dei nomi delle
variabili è simile a quella dei più comuni linguaggi di programmazione, in
particolare:
- Ogni variabile deve iniziare con una lettera oppure con il carattere
underscore "_", dopodiche' possono seguire lettere e numeri o il solito
underscore.
- Python è un linguaggio case sensitive, quindi distingue le variabili
composte da caratteri minuscoli da quelle scritte con caratteri
maiuscoli.
- Esistono delle parole riservate che non possono essere utilizzate
per i nomi delle variabili. Esse sono le seguenti:
- and, assert, break, class, continue, def, del, elif, else, except,
- exec, finally, for, from, global, if, import, in, is, lambda,
- not, or, pass, print, raise, return, try, while
Il famoso costrutto "if else" che permette di eseguire
gruppi di istruzioni diverse in base ad una prefissata condizione è molto
semplice in python:
if <test1>: <gruppo di
istruzioni 1> elif test2: # opzionale <gruppo
di istruzioni 2> else: # opzionale <gruppo di
istruzioni 3>
Ricordiamo che i gruppi di istruzione devono essere indentati nello
stesso modo in quanto è solo l'indentazione che permette di strutturare
l'istruzione if else. A differenza del C, o del Pascal, non esistono
parole che delimitano l'inizio e la fine del blocco (le parentesi graffe
del C o begin e end del pascal). Da notare che i gruppi "elif" e "else"
sono opzionali. Vediamo un piccolo esempio:
>>> a = 5 >>> if a == 5: ... print
'ok' ... elif a > 5: ... print 'troppo' ... else: ... print
'poco' ok
Per effettuare dei cicli è possibile utilizzare due costrutti:
- Il ciclo for che permette di iterare su una lista
di elementi.
- Il ciclo while che permette di fare un ciclo di
tipo generale ponendo la condizione di uscita come prima istruzione del
ciclo.
Vediamo la sintassi del costrutto for:
for <contatore del ciclo>
in <lista>: <gruppo di istruzioni
1>
Il contatore del ciclo è una variabile alla quale viene assegnato, ad
ogni passo del ciclo, un valore della lista. In questo modo all'interno
del gruppo di istruzioni 1 è possibile operare sul singolo elemento della
lista. Vediamo un esempio:
>>> lista1 = ['a','b','c'] >>> for i
in lista1: ... print i+',' a, b, c,
Il costrutto for sembra molto limitato perché, a differenza di altri
linguaggi di programmazione, permette di operare solamente sulle
liste. In realtà questa piccola limitazione viene facilmente superata
utilizzando la funzione "range". La funzione range
permette di costruire una lista di numeri partendo da 0 fino ad un valore
scelto, in questo modo è sufficiente creare la lista da utilizzare nel
costrutto for con questa istruzione per ottenere il medesimo risultato di
altri linguaggi di programmazione. Vediamo un esempio che spiega bene
questo trucco:
>>> lista2 = range(4) >>> for i in
lista2: ... print 'elemento' + str(i) elemento 0 elemento
1 elemento 2 elemento 3
Notare che la lista ottenuta con range è una lista di numeri, e non di
stringhe, questo è il motivo dell'utilizzo della funzione "str" per
convertire il numero in stringa da stampare a video. Se non si vuole
cominciare da 0 basta indicare alla funzione range anche il valore
iniziale.
>>> range(2,5) [2,3,4]
Vediamo ora la sintassi del costrutto while:
while <test>: <gruppo di
istruzioni 1>
Questo costrutto è il più generale ciclo che esiste in python, infatti
in questo caso non siamo legati ad alcuna variabile da assegnare in modo
ciclico. Siamo liberi di utilizzare una condizione qualsiasi. In questo
caso si continua ad iterare nel ciclo fino a quando la condizione rimane
vera, appena essa diventa falsa si esce dal ciclo e si eseguono le
istruzioni successive. Vediamo un esempio:
>>> a=0 >>> b=10 >>>
while a<b: ... print a, ... a = a + 1 0 1 2 3 4 5 6 7 8
9
Quando si esegue un ciclo qualsiasi è sempre possibile forzare l'uscita
dal ciclo in ogni momento, questo è possibile mediante degli appositi
comandi, che elenco di seguito:
- break - Questo comando permette di saltare fuori da
un ciclo ignorando le restanti istruzioni da eseguire.
- continue - Questo comando permette di saltare alla
prima istruzione della prossima iterazione del ciclo.
- else - Sia il ciclo for che il ciclo while hanno un
costrutto aggiuntivo opzionale che permette di eseguire un blocco di
istruzioni al verificarsi di una uscita forzata dal ciclo.
In conseguenza di quello appena detto la sintassi dei due costrutti di
ciclo si estendono nel seguente modo:
for <contatore-del-ciclo>
in <lista>: <gruppo di istruzioni
1> else: <gruppo di istruzioni 2> # in seguito a un
break
while <test>: <gruppo di
istruzioni 1> else: <gruppo di istruzioni
2> # in seguito a un break
>>> a = 0; >>> b =
10; >>> while a<b: print a, a = a + 1 if a ==
5: break; else: print 'a' 0 1 2 3 4
Nell'esempio sopra il ciclo si è interrotto quando la variabile a è
diventata 5. |