Istruzioni condizionali in Python e JES: if, else, elif
Fondamenti di Informatica · Python / Jython (JES)
Questi appunti trattano la selezione, cioè il modo in cui un programma sceglie quali istruzioni eseguire in base ai dati.
Gli esempi sono scritti per JES (Jython Environment for Students), che esegue Python 2.7 su Java, e funzionano anche in
Python 3. Tutti gli esempi sono stati eseguiti.
1. Perché servono le condizioni
Un programma fatto solo di istruzioni in sequenza esegue sempre le stesse operazioni, qualunque siano i dati. Quasi
ogni problema reale richiede invece di comportarsi in modo diverso a seconda dei casi: un numero è pari o dispari, un
voto è sufficiente o no, un pixel è abbastanza rosso da essere modificato oppure va lasciato com'è. Le istruzioni
condizionali permettono di eseguire un blocco di codice solo se una certa condizione è vera.
2. Valori booleani e operatori di confronto
Una condizione è un'espressione che vale (vero) oppure (falso). Questi due valori costituiscono il tipo
True False
booleano ( ). Il modo più comune per ottenerli è confrontare due valori:
bool Operatore Significato Esempio Risultato
uguale a
== 5 == 5 True
diverso da
!= 5 != 3 True
, minore, maggiore
< > 2 > 7 False
, minore o uguale, maggiore o uguale
<= >= 4 <= 4 True
Va distinto con cura il simbolo , che è l'assegnamento (dà un valore a una variabile), dal simbolo , che è il
= ==
confronto (chiede se due valori sono uguali). Scrivere è un errore di sintassi.
if x = 5:
>>> x = 7
>>> x == 7
True
>>> x % 2 == 0
False
>>> "mela" < "pera"
True
>>> 0 <= x < 10
True
Le stringhe si confrontano in ordine alfabetico (più precisamente in base ai codici dei caratteri, per cui le maiuscole
vengono prima delle minuscole). Python ammette anche i confronti concatenati come , che significa "x
0 <= x < 10
è compreso tra 0 incluso e 10 escluso".
3. Operatori logici: and, or, not
Più condizioni si combinano con gli operatori logici:
è vera solo se entrambe A e B sono vere;
A and B
è vera se almeno una tra A e B è vera;
A or B
è vera se A è falsa, e viceversa.
not A 1
A B A and B A or B not A
True True True True False
True False False True False
False True False True True
False False False False True
La precedenza è: prima i confronti, poi , poi , infine . Nel dubbio conviene usare le parentesi, che rendono
not and or
anche il codice più leggibile.