if-elif-else
Il costrutto if-elif-else permette di eseguire istruzioni o gruppi di istruzioni diverse a seconda del verificarsi di una o più condizioni.
La forma più semplice prevede l’uso di un if seguito da una condizione, dai due punti (:) e da un blocco di codice indentato che viene eseguito solo se la condizione è vera:
if condizione:
# gruppo di istruzioni eseguite
# se la condizione è vera
Per esempio, per calcolare il valore assoluto di un numero, possiamo procedere così:
n = int(input('Inserisci un numero: '))
if n < 0: # se il numero è negativo
n = -n # rendilo positivo
print('Il valore assoluto è', n)
In questo caso il blocco di codice indentato sotto l’if (cioè n = -n) è eseguito solo se il numero è negativo. Se il numero è invece positivo, il programma procede ad eseguire l’istruzione che segue l’if, cioè il print().
Aggiungendo un else seguito dai due punti (:) possiamo anche specificare un blocco di codice eseguito quando la condizione dell’if è falsa:
if condizione:
# gruppo di istruzioni eseguite
# se la condizione è vera
else:
# gruppo di istruzioni eseguite
# se la condizione è falsa
In questo caso Python eseguirà il primo blocco se la condizione è vera, oppure il secondo blocco se la condizione è falsa. Ad esempio:
n = int(input('Inserisci un numero: '))
if n < 0: # se il numero è negativo
print(n, 'è negativo')
else: # altrimenti (se non è negativo)
print(n, 'è positivo')
In questo caso il programma eseguirà uno dei due print(): il primo se il numero inserito dall’utente è negativo, il secondo se invece è positivo.
È infine possibile aggiungere 1 o più elif, ognuno seguito da una condizione, dai due punti (:) e da un blocco di codice indentato che viene eseguito solo se la condizione è vera. È anche possibile aggiungere un singolo else alla fine che viene eseguito se tutte le condizioni precedenti sono false:
if condizione1:
# gruppo di istruzioni eseguite
# se la condizione1 è vera
elif condizione2:
# gruppo di istruzioni eseguite
# se la condizione2 è vera
elif condizioneN:
# gruppo di istruzioni eseguite
# se la condizioneN è vera
else:
# gruppo di istruzioni eseguite
# se tutte le condizioni sono false
Si noti che solo uno di questi blocchi viene eseguito: se una delle condizioni è vera, il blocco corrispondente viene eseguito; se invece tutte le condizioni sono false e un else è presente, solo il blocco dell’else viene eseguito. Nel caso ci siano più condizioni vere, verrà eseguito solo il blocco corrispondente alla prima condizione vera.
n = int(input('Inserisci un numero: '))
if n < 0:
print(n, 'è negativo')
elif n > 0:
print(n, 'è positivo')
else:
print(n, 'è zero')
Questo programma usa if ed elif per verificare rispettivamente se il numero inserito dall’utente è negativo o positivo. Se entrambe le condizioni sono false (cioè quando il numero è uguale a 0), l’else viene eseguito.
Esercizio 1 :Cosa genera questo codice se inserisco 1, 7 e poi scrivo pippo?
print("Hello world")
i=input("Inserire un numero per favore:")
y=int(i)
if y>5:
print("Maggiore di 5")
print("Grazie per l'utilizzo")
Esercizio 2:Creare un programma in Python che sostituisca con if concatenati lo switch case del c++ per creare un menu a selezione multipla.
Esercizio 3: Riconoscere un numero inserito quanti divisori ha.