Lezioni del modulo (3/4)
Condizionali: if, elif, else
Le condizionali ti permettono di eseguire codice diverso in base al
valore di un'espressione booleana. In Python si scrivono con if, elif
("else if" abbreviato) ed else.
La forma di base
eta = 18
if eta >= 18:
messaggio = "maggiorenne"
else:
messaggio = "minorenne"Da notare:
- dopo la condizione c'è sempre un due punti
:; - il blocco "dentro" l'if è identificato dall'indentazione (4 spazi);
- non servono parentesi attorno alla condizione (anche se sono ammesse).
Più rami con elif
voto = 7
if voto >= 9:
giudizio = "ottimo"
elif voto >= 7:
giudizio = "buono"
elif voto >= 6:
giudizio = "sufficiente"
else:
giudizio = "insufficiente"I rami elif vengono valutati nell'ordine in cui li scrivi e si fermano al
primo che risulta vero.
Espressione condizionale (ternario)
Per casi semplici puoi scrivere tutto in una riga:
eta = 20
messaggio = "maggiorenne" if eta >= 18 else "minorenne"Si legge naturalmente in inglese: "maggiorenne se età >= 18 altrimenti minorenne".
Valori "truthy" / "falsy"
Una condizione non deve essere per forza un confronto: qualsiasi valore può
essere usato come condizione. Sono considerati falsi: False, None, 0,
"", [], {}. Tutto il resto è vero.
nome = "Ada"
if nome:
saluto = f"Ciao {nome}!"
else:
saluto = "Ciao sconosciuto!"Espressioni condizionali (operatore ternario)
Python supporta una forma compatta di if-else su una sola riga, equivalente all'operatore ternario di altri linguaggi:
risultato = "Pari" if n % 2 == 0 else "Dispari"Questo rende il codice più conciso quando si deve semplicemente assegnare un valore in base a una condizione.
Prova tu
Dato `number = 15`, assegna a `sign` la stringa 'positivo' se il numero è > 0, 'zero' se è 0, 'negativo' altrimenti. Valuta `sign`.
Mostra suggerimento
Tre rami: > 0, == 0, else.
Soluzione disponibile dopo 3 tentativi
Esercizio di ripasso
Dato `age = 20`, assegna a `category` la stringa 'maggiorenne' o 'minorenne' usando l'espressione ternaria (if/else su una riga).
Mostra suggerimento
Sintassi: valore_se_vero if condizione else valore_se_falso
Soluzione disponibile dopo 3 tentativi
Sfida aggiuntiva
Scrivi un controllo condizionale che verifichi se la variabile `x` (posta a `-5`) è maggiore di 0, minore di 0 o uguale a 0. Assegna a `sign` la stringa `'positive'`, `'negative'` o `'zero'` di conseguenza. Infine valuta `sign`.
Mostra suggerimento
Usa if x > 0:, elif x < 0: e else: per gestire i tre casi.
Soluzione disponibile dopo 3 tentativi