Vai al contenuto
eLearner.app
Modulo 1 · Lezione 3 di 43/36 nel corso~10 min
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

Python
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

Python
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:

Python
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.

Python
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:

Python
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

Esercizio#python.m1.l3.e1
Tentativi: 0Caricamento…

Dato `number = 15`, assegna a `sign` la stringa 'positivo' se il numero è > 0, 'zero' se è 0, 'negativo' altrimenti. Valuta `sign`.

Caricamento editor…
Mostra suggerimento

Tre rami: > 0, == 0, else.

Soluzione disponibile dopo 3 tentativi

Esercizio di ripasso

Esercizio#python.m1.l3.e2
Tentativi: 0Caricamento…

Dato `age = 20`, assegna a `category` la stringa 'maggiorenne' o 'minorenne' usando l'espressione ternaria (if/else su una riga).

Caricamento editor…
Mostra suggerimento

Sintassi: valore_se_vero if condizione else valore_se_falso

Soluzione disponibile dopo 3 tentativi

Sfida aggiuntiva

Esercizio#python.m1.l3.e3
Tentativi: 0Caricamento…

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`.

Caricamento editor…
Mostra suggerimento

Usa if x > 0:, elif x < 0: e else: per gestire i tre casi.

Soluzione disponibile dopo 3 tentativi