Costrutti Condizionali - If / Elif / Else
In Python, i costrutti condizionali if, elif ed else vengono utilizzati per eseguire blocchi di codice in base al valore di verità di una o più condizioni. Questi costrutti consentono di implementare una logica decisionale nei programmi, rendendo il codice dinamico e interattivo.
If - La base delle condizioni
Il costrutto if verifica una condizione. Se la condizione è vera (True), il blocco di codice associato viene eseguito. Se è falsa (False), il blocco viene ignorato.
Sintassi di base
if condizione:
# Esegui questo blocco se la condizione è vera
codice_eseguito
Esempio semplice
numero = 10
if numero > 5:
print("Il numero è maggiore di 5") # Output: Il numero è maggiore di 5
In questo esempio, la condizione numero > 5 è vera perché 10 è maggiore di 5. Pertanto, la stringa viene stampata.
If/Else - Gestire il caso “altrimenti”
Il costrutto else viene utilizzato per specificare un blocco di codice che viene eseguito quando la condizione nell’if è falsa.
Sintassi
if condizione:
# Codice eseguito se la condizione è vera
else:
# Codice eseguito se la condizione è falsa
Esempio
numero = 3
if numero > 5:
print("Il numero è maggiore di 5")
else:
print("Il numero è minore o uguale a 5") # Output: Il numero è minore o uguale a 5
In questo caso, la condizione numero > 5 è falsa, quindi viene eseguito il blocco all’interno di else.
If/Elif/Else - Gestire più condizioni
Il costrutto elif (abbreviazione di “else if”) permette di verificare più condizioni una dopo l’altra. Se la prima condizione non è vera, il programma verificherà la seconda, e così via. Se nessuna condizione è vera, viene eseguito il blocco associato all’else.
Sintassi
if condizione1:
# Codice eseguito se condizione1 è vera
elif condizione2:
# Codice eseguito se condizione2 è vera
else:
# Codice eseguito se nessuna condizione è vera
Esempio
numero = 5
if numero > 10:
print("Il numero è maggiore di 10")
elif numero == 5:
print("Il numero è esattamente 5") # Output: Il numero è esattamente 5
else:
print("Il numero è minore di 5")
In questo esempio, la prima condizione numero > 10 è falsa, quindi Python verifica la seconda condizione numero == 5, che è vera. Viene quindi eseguito il blocco associato all’elif.
Condizioni Multiple
È possibile combinare più condizioni all’interno dello stesso if, elif o else utilizzando gli operatori logici and, or e not.
Operatore AND
L’operatore and viene utilizzato per verificare che tutte le condizioni siano vere.
numero = 7
if numero > 5 and numero < 10:
print("Il numero è compreso tra 5 e 10") # Output: Il numero è compreso tra 5 e 10
In questo caso, entrambe le condizioni numero > 5 e numero < 10 sono vere, quindi viene eseguito il blocco di codice.
Operatore OR
L’operatore or viene utilizzato per verificare che almeno una condizione sia vera.
colore = "blu"
if colore == "rosso" or colore == "blu":
print("Il colore è rosso o blu") # Output: Il colore è rosso o blu
Poiché colore == "blu" è vero, il blocco viene eseguito.
Operatore NOT
L’operatore not inverte il valore di una condizione. Se la condizione è vera, diventa falsa, e viceversa.
x = False
if not x:
print("x è falso") # Output: x è falso
If inline (Ternario)
Python supporta un modo compatto per scrivere if e else, chiamato operatore ternario o if inline. È utile per espressioni brevi.
Sintassi
variabile = valore1 if condizione else valore2
Esempio
eta = 18
messaggio = "Sei maggiorenne" if eta >= 18 else "Sei minorenne"
print(messaggio) # Output: Sei maggiorenne
In questo esempio, la condizione eta >= 18 è vera, quindi la variabile messaggio assume il valore "Sei maggiorenne".
If annidati
Gli if annidati sono blocchi condizionali all’interno di altri blocchi if, elif o else. Questo può essere utile per gestire condizioni più complesse, anche se va usato con cautela per non rendere il codice meno leggibile.
Esempio
numero = 10
if numero > 5:
if numero < 15:
print("Il numero è compreso tra 5 e 15") # Output: Il numero è compreso tra 5 e 15
else:
print("Il numero è maggiore o uguale a 15")
else:
print("Il numero è minore o uguale a 5")
In questo caso, la prima condizione numero > 5 è vera, quindi Python entra nell’if annidato e verifica numero < 15, che è anch’essa vera.
Confronti multipli in un’unica condizione
Python supporta confronti multipli concatenati, che permettono di verificare se un valore si trova in un intervallo, senza dover usare operatori logici come and.
Esempio
numero = 7
if 5 < numero < 10:
print("Il numero è compreso tra 5 e 10") # Output: Il numero è compreso tra 5 e 10
Questo confronto è equivalente a numero > 5 and numero < 10, ma è più compatto e leggibile.