Passer au contenu principal
eLearner.app
Module 1 · Leçon 3 sur 43/36 dans le cours~10 min
Leçons du module (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

Exercice#python.m1.l3.e1
Tentatives : 0Chargement…

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

Chargement de l'éditeur…
Afficher l'indice

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

Solution disponible après 3 tentatives

Esercizio di ripasso

Exercice#python.m1.l3.e2
Tentatives : 0Chargement…

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

Chargement de l'éditeur…
Afficher l'indice

Sintassi: valore_se_vero if condizione else valore_se_falso

Solution disponible après 3 tentatives

Sfida aggiuntiva

Exercice#python.m1.l3.e3
Tentatives : 0Chargement…

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

Chargement de l'éditeur…
Afficher l'indice

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

Solution disponible après 3 tentatives