Tutorial sul Python - Controllo delle decisioni
-
if...else
Dichiarazione -
Dichiarazione
if
-
Dichiarazione
if...else
(se…altro) -
Dichiarazione
if...elif...else
-
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
.
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.
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
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook