Capitolo 5. Decisioni

5.1. L'espressione If

Credo sia meglio partire con un esempio a caldo: ecco quindi un programma che calcola il valore assoluto di un numero:

n = input("Number? ")
if n < 0:
        print "The absolute value of",n,"is",-n
else:
        print "The absolute value of",n,"is",n
Output di due esecuzioni:
Number? -34
The absolute value of -34 is 34

Number? 1
The absolute value of 1 is 1
Quindi cosa fa Python quando esegue questo programma? Prima di tutto chiede all'utente un numero grazie alla linea 'n = input ("Number? ")' dopodiché legge la linea 'if n < 0': se n è minore di zero Python esegue la linea 'print "The absolute value of ", n, " is ", -n' altrimenti, cioè se il numero è maggiore di zero, esegue la linea "print "The absolute value of ", n, "is ", n'.

Più facilmente Python decide se l'affermazione n < 0 è vera o falsa. Una espressione if è sempre seguita da un blocco di altre espressioni tabulate che vengono eseguite nel caso l'affermazione sia vera. In caso contrario vengono eseguiti i comandi tabulati sotto l'espressione else, ovvero quando l'affermazione if risulta falsa.

Python presenta svariati operatori associabili al confronto di una variabile: eccone una lista completa:

Un'altra proprietà dell'espressione if è la funzione elif. Elif è un'abbreviazione di else if e significa: esegui il blocco di istruzioni tabulato sotto elif se la condizione necessaria al primo if è falsa e la condizione di elif è vera. Ecco un esempio:
a = 0
while a < 10:
        a = a + 1
        if a > 5:
                print a," > ",5
        elif a <= 7:
                print a," <= ",7
        else:
                print "Neither test was true"
Output:
1  <=  7
2  <=  7
3  <=  7
4  <=  7
5  <=  7
6  >  5
7  >  5
8  >  5
9  >  5
10  >  5
Osservate come la linea 'elif a <= 7:' entri in azione solamente quando la prima espressione if risulta falsa. Come potete vedere l'espressione elif permette di fare test multipli all'interno di una singola espressione if.