Percorso: ilMac.net > Scuola di Mac > Corsi > Programmare con Python


Programmare con Python

12 - L'istruzione if


So tacere in ben 15 lingue, compreso lo swahili
Groucho Marx


Parliamoci chiaro: sino ad ora non abbiamo prodotto granché, anzi: ci siamo baloccati allegramente. Infatti, cosa abbiamo fatto?
print "Hello World"
Poi:
a = 21
print a
e via di questo passo. Cioé, quanto da noi scritto è stato immediatamente eseguito. Ma questo approccio semplice ce lo stiamo lasciando alle spalle. Infatti, ora vedremo come far eseguire a Python solo certe operazioni, e solo se in presenza di certi requisiti: da noi fissati, ovviamente!

Se telefonando

In questo nostro viaggio in fondo dilettantesco all'interno di Python, quest'oggi facciamo conoscenza con l'istruzione if (cioé se). Il suo scopo è di verificare la veridicità di quanto scritto, e quindi stampare un certo risultato. Ecco un esempio:



Qui abbiamo una variabile (cioé a = 9). Poi abbiamo l'istruzione if che in sostanza dichiara: se a è uguale al numero 9 (il segno == infatti indica proprio uguale a), preparati, perché occorrerà fare una determinata cosa. Poi abbiamo i due punti, e l'indentazione (vale a dire viene applicato il rientro); qui inizia il blocco delle istruzioni, segnalato dal print. Cioé, diciamo che cosa deve fare il programma se corrisponde a verità l'affermazione introdotta da if. Quindi, Python stamperà sul bel video del nostro Mac un eloquente 'Molto bene'. Il termine dell'indentazione segnala anche la fine del blocco delle istruzioni. In sostanza l'anatomia dell'istruzione if è la seguente:


if (condizione):
(istruzione1)

Procediamo.
La flessibilità dell'istruzione if permette di piazzare al suo interno (o nidificare come si dice), altre istruzioni if; ma anche altre istruzioni come per esempio else (cioé altrimenti). Ecco un esempio per comprendere meglio quanto detto:


Spieghiamoci un poco. Per prima cosa 'input' crea una finestra in cui l'utente può immettere un numero (raw_input invece serve per immettere del testo). Il segno > significa maggiore. Quindi, se l'utente immette un numero più grande di 15, Python stamperà un certo output. Se invece il numero sarà più piccolo di 15, otterremo un altro risultato. Ricapitolando la sintassi:

if (condizione1):
(istruzione1)
else:
(istruzione2)

Qui siamo alle prese con un tipo di esecuzione alternativa: se la condizione 1 è vera, esegui l'istruzione 1, altrimenti passa all'istruzione 2. Non siamo ancora al capolinea. Gli esempi non finiscono qui. Per il vostro piacere, eccovene un altro:


Qui abbiamo una novità: cioé l'introduzione di una nuova istruzione. Si tratta di elif (altrimenti se). Non c'è molto da spiegare, ma lo faremo lo stesso. Se la condizione 1 (con if), è vera eseguila, ma se è falsa passa a elif; è fasulla pure questa? Passa pure a else. Ricordiamo che si possono mettere tanti elif quanti se ne desiderano (ma è anche possibile non metterne nemmeno uno): il problema è che alla fin fine a rimetterci è la leggibilità del codice.
Che cosa possiamo comprendere da questo esempio? Varie cose: le istruzioni vengono eseguite esattamente nell'ordine in cui vengono digitate. Se la prima è esatta le altre vengono trascurate; viceversa, se è errata si passa alla seconda, e così via. Se nessuna delle due istruzioni è vera ed è presente l'istruzione else, quest'ultima verrà eseguita. Qualora quest'ultima manchi (else è opzionale), non verrà eseguito un bel niente.
Ora vediamo un po' di altre istruzioni annidate:


Qui abbiamo :
if n == 5
che è la prima condizione; al suo interno abbiamo una prima istruzione scelta se il numero inserito dall'utente è uguale a 15. Subito dopo else troviamo un altro if con un'altra istruzione. Il punto debole delle istruzioni annidate (e di cui abbiamo già accennato qualcosa precedentemente), è che se si complicano (o meglio, se si annidano in livelli sempre più profondi), diventano di difficile lettura. Quindi, sarebbe un'ottima cosa limitarne l'uso. Ma esiste anche un modo per semplificare le istruzioni annidate. Cioé combinarle tramite and.


In questo modo le cose sono un po' più semplici, ma la cosa migliore, lo ripetiamo, è di evitare per quanto possibile istruzioni annidate.
In questa lezione abbiamo però avuto come compagni di viaggio alcuni strani segni, cioé == e >. Si tratta di operatori di comparazione (questo il loro nome ufficiale), e per chiarezza ne pubblichiamo l'elenco completo:

< minore di
> maggiore di
== uguale a
<= minore o uguale a
>= maggiore o uguale a
!= diverso da
<> una variante dell'operatore precedente
Nella prossima puntata vedremo all'opera l'istruzione while.

Lezione Successiva

Data di pubblicazione: 27-10-2005

L'intero contenuto di questo sito è © dal 1998 del Team di ilMac.net, è vietata ogni riproduzione senza il consenso scritto da parte degli autori.