Il costrutto if elif else in Python permette l’annidamento di più istruzioni if, cioè le istruzioni se allora altrimenti. Infatti, questo costrutto è particolarmente utile per implementare selezioni multiple. In Python ricordiamo non esiste tra l’altro il costrutto switch-case, comune a molti altri linguaggi di programmazione.
Sintassi if elif else in Python
L’istruzione if-elif-else in Python segue questa sintassi:
if condizione_1:
istruzioni_1
elif condizione_2:
istruzioni_2
elif condizione_n:
istruzioni_n
else:
istruzioni_altro
In questo esempio, condizione_1
, condizione_2
, …, condizione_n
rappresentano i test da valutare in sequenza. Se una delle condizioni è vera, viene eseguito il blocco corrispondente di istruzioni. Se nessuna delle condizioni è vera, vengono eseguite le istruzioni definite nell’istruzione else
. È importante notare l’uso di elif
, abbreviazione di “else if”, che consente di specificare ulteriori condizioni da testare.
Primo esempio
Realizziamo dunque un primo esempio d’utilizzo del costrutto if elif else.
Realizzare un programma, che legga in input un voto rappresentato da un carattere tra A ed E e dopo ne stampi il significato.
Consideriamo ad esempio che:
A corrisponde a ottimo;
B corrisponde a distinto;
C corrisponde a discreto;
D corrisponde a sufficiente;
E corrisponde a insufficiente.
Innanzitutto prendiamo in input il voto e dopo lo confrontiamo con una delle lettere per stampare in output il voto corrispondente. Se la lettera non corrisponde a nessuna delle predefinite si visualizzerà un messaggio d’errore.
Ecco dunque una possibile soluzione che utilizza il costrutto if elif else in Python:
voto = input('Inserisci il voto A, B, C, D o E: ')
if voto == 'A':
print('Il voto', voto, ' corrisponde a ottimo')
elif voto == 'B':
print('Il voto', voto, ' corrisponde a distinto')
elif voto == 'C':
print('Il voto', voto, ' corrisponde a discreto')
elif voto == 'D':
print('Il voto', voto, ' corrisponde a sufficiente')
elif voto == 'E':
print('Il voto', voto, ' corrisponde a insufficiente')
else:
print('la lettera inserita non corrisponde a nessun voto')
Migliora le tue capacità di programmazione Python seguendo i nostri corsi in diretta!
Secondo esempio
Facciamo un altro esempio per capire meglio l’utilizzo del costrutto if elif else.
Su una linea ferroviaria, rispetto alla tariffa piena, i pensionati usufruiscono di uno sconto del 10%, gli studenti del 15% e infine i disoccupati del 25%.
Allora, codificando i pensionati con una P, gli studenti con una S e i disoccupati con una D, scrivere un programma che, richiesto il costo di un biglietto e l’eventuale condizione dell’utente, visualizzi l’importo da pagare.
Innanzitutto prendiamo in input il prezzo e lo stato, cioè se l’utente è disoccupato, pensionato o uno studente.
Dopo basta controllare lo stato e di conseguenza calcolare il prezzo del biglietto.
Ecco quindi una possibile risoluzione che utilizza il costrutto if elif else:
prezzo = float(input('Inserisci il prezzo del biglietto: '))
stato = input('Inserisci il tuo stato (D = Disoccupato, P = Pensionato, S = Studente): ')
if stato == 'D':
prezzo = prezzo * 75/100
elif stato == 'P':
prezzo = prezzo * 90/100
elif stato == 'S':
prezzo = prezzo * 85/100
else:
prezzo = prezzo
print('Appartieni alla categoria ', stato, ' quindi pagherai: ', prezzo)
Se già avete dimestichezza al posto di prezzo = prezzo * 75 / 100 scrivete pure prezzo *= 0,75 e così via.
Conclusioni
In questa lezione abbiamo esaminato l’uso dell’istruzione if elif else in Python attraverso esempi pratici. Continua a esplorare i costrutti di controllo del flusso di Python per comprendere appieno le loro applicazioni e versatilità.
Alcuni link utili
Indice tutorial sul linguaggio Python
1 – Introduzione al linguaggio Python
2 – Le variabili
3 – Operatori aritmetici e di assegnazione
4 – Come utilizzare le stringhe
5 – Casting
6 – Input e print
8 – Come gestire gli errori in Python