Tutorial sul Python - Controllo delle decisioni

  1. if...else Dichiarazione
  2. Dichiarazione if
  3. Dichiarazione if...else (se…altro)
  4. Dichiarazione if...elif...else
  5. Dichiarazioni if annidate

In questa sezione, imparerete il costrutto decisionale nella programmazione Python. Il costrutto decisionale più usato è un costrutto if...else.

if...else Dichiarazione

L’affermazione if...else viene usata quando si hanno due blocchi di affermazioni e se se ne vuole eseguire solo uno basato su alcune condizioni. Nella programmazione Python, la maggior parte delle volte if...elif...else viene usata come costrutto decisionale.

Dichiarazione if

Nell’istruzione if si ha un solo blocco di istruzioni e questo blocco viene eseguito solo quando la condizione è True, ignorato quando la condizione è False.

Di seguito è riportata la sintassi dell’istruzione if in Python:

if condition:
    statement(s)

Il corpo dell’istruzione if in Python non è circondato da parentesi graffe, ma al contrario, viene usata l’indentazione. La fine del corpo è indicata dalla prima linea non voluta.

Esempio di dichiarazione if

Si consideri il seguente esempio in cui viene utilizzata l’affermazione if:

a = 24
if a % 2 == 0:
    print(a, "is an even number")
b = 23
if b % 2 == 0:
    print(b, "is an odd number")
24 is an even number

In questo codice, alla variabile a viene assegnato prima un valore e poi viene valutata la condizione nell’istruzione if. Essa controlla se a è un numero pari o meno prendendo il modulo di a con 2 e se il risultato di % (mod) è 0 allora il controllo entra nel corpo di if e l’istruzione print viene eseguita.

Poi b viene assegnato un numero dispari 23. La condizione nell’istruzione if non è True, quindi print(b, "is an odd number") non verrà eseguita.

Dichiarazione if...else (se…altro)

La seguente è la sintassi di un’affermazione “se…altro”:

if condition:
    block of statements
else:
    block of statements

In if...else, se la condizione if è True, viene eseguito il corrispondente blocco di affermazioni, altrimenti verrà eseguito il blocco di affermazioni sotto la parte else.

Esempio di istruzione if...else

Considerate il codice sottostante in cui se...altro viene usato:

a = 44
if a%2==0:
    print(a, "is an even number")
else:
    print(a, "is an odd number")
44 is an even number

Qui se a è pari, stamperà a è un numero pari, altrimenti stamperà a è un numero dispari.

Nota

se i blocchi if e else non possono essere eseguiti o ignorati. Solo un blocco viene eseguito in base alla condizione True o meno.

Dichiarazione if...elif...else

La seguente è la sintassi dell’affermazione if...elif...else:

if condition:
    block of statements
elif condition:
    block of statements
else:
    block of statements

elif sta per else if e potrebbe essere usata più volte in questo costrutto if..elif..else.

Quando la condizione sotto if diventa False, la condizione di elif sarà controllata e così via. Quando tutte le condizioni di if e elif sono False, la parte else sarà eseguita.

Nota

Verrà eseguito solo un blocco.

se...elif...altro Esempio di dichiarazione

Consideriamo il codice qui sotto in cui abbiamo usato la dichiarazione if...elif...else che verifica molteplici condizioni:

a = -34
if a > 0:
    print("Number is Positive")
elif a < 0:
    print("Number is Negative")
else:
    print("Number is zero")
Number is Negative

Dichiarazioni if annidate

In Python, si può avere un if all’interno di un altro if. Questo si chiama if annidato.

Si può annidare qualsiasi tipo di frase if per un numero illimitato di volte. Ma non è una buona pratica usare strutture nidificate if nei linguaggi di programmazione, poiché la leggibilità del programma peggiora.

Esempio di nido di if dichiarazioni nidificate

Nel codice seguente, la struttura nidificata if viene utilizzata per trovare il numero più grande:

T = 52

if T > 25:
    if T < 50:
        print("Temperature is higher than 25 but lower than 50")
    else:
        print("Temperature is higher than 50")
else:
    if T < 0:
        print("Temperature is lower than 0")
    else:
        print("Temperature is higher than 0 but lower than 25")
Temperature is higher than 50