4. Strutture di Controllo Condizionali

Impariamo a far prendere decisioni ai nostri programmi

🤔 Cosa sono le strutture condizionali?

Fino ad ora abbiamo scritto programmi che eseguono sempre le stesse operazioni dall’inizio alla fine.
Ma nella vita reale prendiamo continuamente decisioni: “Se piove, prendo l’ombrello”, “Se ho fame, mangio qualcosa”.

Le strutture condizionali permettono ai nostri programmi di fare la stessa cosa: prendere decisioni
e comportarsi diversamente in base a determinate condizioni. Questo rende i programmi molto più intelligenti e dinamici!

In questa lezione impareremo a usare if, elif ed else per creare programmi
che possono scegliere cosa fare, e scopriremo anche il modulo random per aggiungere casualità ai nostri programmi.

1. Ripasso: Operatori di Confronto

Prima di iniziare con le strutture condizionali, rivediamo velocemente gli operatori di confronto che abbiamo già
studiato nella lezione precedente. Sono fondamentali perché ci permettono di creare le condizioni!

Operatore Significato Esempio Risultato
== Uguale a 5 == 5 True
!= Diverso da 5 != 3 True
> Maggiore di 7 > 3 True
< Minore di 3 < 7 True
>= Maggiore o uguale 5 >= 5 True
<= Minore o uguale 3 <= 5 True
x = 5
y = 10

print(x > y) # False, perché 5 non è maggiore di 10
print(x == y) # False, perché 5 non è uguale a 10
print(x != y) # True, perché 5 è diverso da 10
print(x < y) # True, perché 5 è minore di 10

2. Ripasso: Operatori Logici

Gli operatori logici ci permettono di combinare più condizioni insieme. Sono molto utili quando vogliamo
verificare che più cose siano vere contemporaneamente.

🔗 Operatore AND

Restituisce True solo se TUTTE le condizioni sono vere.

x = 5
y = 10

# Entrambe le condizioni devono essere vere
risultato = x > 0 and y > 0
print(risultato) # True (perché 5>0 è True E 10>0 è True)

🔀 Operatore OR

Restituisce True se ALMENO UNA delle condizioni è vera.

x = 5
y = -3

# Basta che una condizione sia vera
risultato = x > 0 or y > 0
print(risultato) # True (perché 5>0 è True, anche se -3>0 è False)

🔄 Operatore NOT

Inverte il valore booleano: trasforma True in False e viceversa.

piove = False
bel_tempo = not piove
print(bel_tempo) # True (NOT False = True)

3. L’istruzione IF – La Decisione Base

L’istruzione if è la struttura condizionale più semplice. Dice a Python:
“SE questa condizione è vera, esegui questo blocco di codice”.

📐 Sintassi:


if condizione:
    codice da eseguire se la condizione è True

⚠️ IMPORTANTE – L’indentazione: Il codice dentro l’if DEVE essere indentato (spostato a destra)
con 4 spazi o un Tab. Questo è obbligatorio in Python! Non dimenticare i due punti : dopo la condizione.

💡 Esempio Base

eta = 20

if eta >= 18:
    print(“Sei maggiorenne! 🎉”)
    print(“Puoi votare e guidare!”)

Cosa succede:

  1. Python controlla se eta >= 18 è True
  2. Siccome 20 >= 18 è True, esegue il codice indentato
  3. Stampa entrambi i messaggi

🎮 Esempio Pratico: Controllo Voto

voto = int(input(“Quale voto hai preso? “))

if voto >= 6:
    print(“Complimenti! Hai superato l’esame! 🎉”)

print(“Questo messaggio viene stampato sempre”)

💡 Nota: L’ultimo print non è indentato, quindi viene eseguito sempre,
indipendentemente dalla condizione!

4. IF-ELSE – Due Strade Possibili

Con if-else possiamo dire a Python: “SE la condizione è vera fai questo, ALTRIMENTI fai quest’altro”.
È come avere un piano B!

📐 Sintassi:


if condizione:
    codice se la condizione è True
else:
    codice se la condizione è False

💡 Esempio Base

eta = int(input(“Quanti anni hai? “))

if eta >= 18:
    print(“Sei maggiorenne! Puoi votare! 🗳️”)
else:
    print(“Sei minorenne. Devi aspettare ancora! ⏳”)

Cosa succede:

  • Se l’età è >= 18: stampa il primo messaggio
  • Altrimenti (età < 18): stampa il secondo messaggio
  • Uno dei due messaggi verrà SEMPRE stampato

🌡️ Esempio Pratico: Controllo Temperatura

temperatura = int(input(“Che temperatura c’è fuori? “))

if temperatura >= 25:
    print(“Fa caldo! Indossa vestiti leggeri! ☀️”)
else:
    print(“Fa freddo! Metti una giacca! 🧥”)

5. IF-ELIF-ELSE – Molte Strade Possibili

Quando abbiamo più di due possibilità, usiamo elif (abbreviazione di “else if”).
Possiamo avere tante elif quante ne vogliamo!

📐 Sintassi:


if prima_condizione:
    codice se la prima condizione è True
elif seconda_condizione:
    codice se la seconda condizione è True
elif terza_condizione:
    codice se la terza condizione è True
else:
    codice se nessuna condizione è True

💡 Come funziona: Python controlla le condizioni dall’alto verso il basso.
Appena ne trova una vera, esegue quel blocco e salta tutti gli altri. Se nessuna è vera, esegue l’else.

💡 Esempio Base

voto = int(input(“Che voto hai preso? “))

if voto >= 9:
    print(“Eccellente! Sei un genio! 🌟”)
elif voto >= 7:
    print(“Molto bene! Bravo! 👏”)
elif voto >= 6:
    print(“Sufficiente. Hai passato! ✅”)
else:
    print(“Insufficiente. Devi studiare di più! 📚”)

Come viene valutato:

  • Se voto >= 9: stampa “Eccellente” e si ferma
  • Altrimenti, se voto >= 7: stampa “Molto bene” e si ferma
  • Altrimenti, se voto >= 6: stampa “Sufficiente” e si ferma
  • Altrimenti (voto < 6): stampa "Insufficiente"

🌡️ Esempio Pratico: Consigli sul Meteo

temperatura = int(input(“Che temperatura c’è fuori? “))

if temperatura < 0:
    print(“Fa freddissimo! Coprirti bene! 🥶”)
elif temperatura < 10:
    print(“Fa freddo. Prendi una giacca pesante! 🧥”)
elif temperatura < 20:
    print(“Temperatura fresca. Una felpa va bene! 👕”)
elif temperatura < 30:
    print(“Temperatura perfetta! Maglietta leggera! 😊”)
else:
    print(“Fa caldissimo! Cerca l’aria condizionata! 🔥”)

6. Il Modulo Random – Aggiungiamo Casualità!

Il modulo random ci permette di generare numeri casuali e fare scelte random.
È perfetto per creare giochi, simulazioni o qualsiasi programma che ha bisogno di imprevedibilità!

📦 Cos’è un modulo? Un modulo è come una scatola di attrezzi che contiene funzioni pronte all’uso.
Per usarlo dobbiamo prima “importarlo” con il comando import.

📥 Importare il modulo

import random # Questa riga deve essere all’inizio del programma

Una volta importato, possiamo usare tutte le funzioni del modulo scrivendo random.nome_funzione()

🎲 random.randint() – Numero Intero Casuale

Genera un numero intero casuale tra due valori (estremi inclusi).

random.randint(minimo, massimo)
import random

# Genera un numero tra 1 e 6 (come un dado)
dado = random.randint(1, 6)
print(“Hai tirato:”, dado)

# Genera un numero tra 1 e 100
numero_segreto = random.randint(1, 100)
print(“Numero segreto:”, numero_segreto)

📊 random.random() – Numero Decimale Casuale

Genera un numero decimale casuale tra 0.0 e 1.0 (non incluso).

import random

numero_casuale = random.random()
print(numero_casuale) # Es: 0.7234819…

# Possiamo moltiplicarlo per ottenere altri range
percentuale = random.random() * 100
print(“Percentuale:”, round(percentuale, 2))

🎯 random.choice() – Scelta Casuale da una Lista

Sceglie un elemento casuale da una lista di valori.

import random

# Lista di colori
colori = [“rosso”, “blu”, “verde”, “giallo”]
colore_scelto = random.choice(colori)
print(“Colore casuale:”, colore_scelto)

# Lancio della moneta
moneta = random.choice([“Testa”, “Croce”])
print(“È uscito:”, moneta)

💡 Nota: Le liste le studieremo meglio nelle prossime lezioni. Per ora, pensa a una lista
come a un gruppo di valori racchiusi tra parentesi quadre [ ] e separati da virgole.

🎮 Esempio Completo: Gioco Indovina il Numero

import random

# Il computer sceglie un numero casuale tra 1 e 10
numero_segreto = random.randint(1, 10)

# L’utente prova a indovinare
tentativo = int(input(“Indovina il numero (tra 1 e 10): “))

# Controlliamo se ha indovinato
if tentativo == numero_segreto:
    print(“🎉 Hai indovinato! Il numero era”, numero_segreto)
elif tentativo < numero_segreto:
    print(“📉 Troppo basso! Il numero era”, numero_segreto)
else:
    print(“📈 Troppo alto! Il numero era”, numero_segreto)

⚠️ L’Indentazione è Fondamentale!

In Python, l’indentazione (gli spazi all’inizio della riga) NON è solo per rendere il codice più leggibile:
è OBBLIGATORIA e fa parte della sintassi del linguaggio!

❌ SBAGLIATO (senza indentazione):

if eta >= 18:
print(“Maggiorenne”) # ERRORE! Manca l’indentazione

✅ CORRETTO (con indentazione):

if eta >= 18:
    print(“Maggiorenne”) # 4 spazi di indentazione

💡 Consiglio: Usa sempre 4 spazi per l’indentazione (non Tab). La maggior parte degli editor
converte automaticamente il Tab in 4 spazi quando scrivi codice Python.

🎯 Esercitazioni Guidate

10 esercizi pratici con if, elif, else e random

1️⃣ Il Gioco del Meteo Impazzito

Genera una temperatura casuale tra -10 e 40 gradi e suggerisci cosa indossare in base alla temperatura.

import random

temperatura = random.randint(-10, 40)
print(f”Temperatura: {temperatura}°C”)

if temperatura < 0:
    print(“Fa freddo polare! Metti il piumone! 🥶”)
elif temperatura < 15:
    print(“Freschetto. Prendi una giacca! 🧥”)
elif temperatura < 25:
    print(“Temperatura perfetta! Maglietta! 👕”)
else:
    print(“Caldo infernale! Cerca l’aria condizionata! 🔥”)

2️⃣ La Scelta del Film

Scegli casualmente un genere di film da guardare stasera tra 4 opzioni diverse.

import random

scelta_film = random.randint(1, 4)

if scelta_film == 1:
    print(“Film d’azione! Popcorn e adrenalina! 💥”)
elif scelta_film == 2:
    print(“Film romantico. Preparati per qualche lacrima! 💕”)
elif scelta_film == 3:
    print(“Fantascienza! Attenzione agli alieni! 👽”)
else:
    print(“Documentario sulla natura! 🦁”)

3️⃣ Il Gioco del Dado Fortunato

Simula un lancio di dado (1-6) e decidi quanto sei fortunato in base al risultato.

import random

dado = random.randint(1, 6)
print(f”Hai tirato: {dado} 🎲”)

if dado == 1:
    print(“Che sfortuna! Non è il tuo giorno! 😢”)
elif dado == 6:
    print(“Jackpot! Sei super fortunato oggi! 🍀”)
else:
    print(“Giornata normale, niente di speciale! 😊”)

4️⃣ Il Gioco del Cibo Sorpresa

Scopri casualmente cosa mangerai oggi tra 5 piatti diversi.

import random

piatto = random.randint(1, 5)

if piatto == 1:
    print(“Oggi mangerai pizza! 🍕”)
elif piatto == 2:
    print(“Hamburger con patatine! 🍔”)
elif piatto == 3:
    print(“Sushi! Itadakimasu! 🍣”)
elif piatto == 4:
    print(“Pasta al pomodoro! Classico italiano! 🍝”)
else:
    print(“Insalata salutare! Fa bene! 🥗”)

5️⃣ Il Gioco del Traffico

Simula diverse condizioni di traffico (leggero, moderato, pesante).

import random

traffico = random.randint(1, 3)

if traffico == 1:
    print(“Traffico leggero. Arriverai in tempo! 🚗”)
elif traffico == 2:
    print(“Traffico moderato. Metti la musica! 🎵”)
else:
    print(“Traffico pesante! Preparati a un lungo viaggio! 😫”)

6️⃣ Il Gioco del Supereroe

Scopri quale superpotere avresti tra 4 opzioni diverse.

import random

superpotere = random.randint(1, 4)

if superpotere == 1:
    print(“Il tuo superpotere è l’invisibilità! 👻”)
elif superpotere == 2:
    print(“Puoi volare! Il cielo è tuo! 🦅”)
elif superpotere == 3:
    print(“Super forza! Sollevi macchine! 💪”)
else:
    print(“Leggi la mente! Sai tutto! 🧠”)

7️⃣ Il Gioco del Viaggio

Scopri dove andrai in vacanza tra 5 destinazioni diverse.

import random

destinazione = random.randint(1, 5)

if destinazione == 1:
    print(“Montagna! Aria fresca! 🏔️”)
elif destinazione == 2:
    print(“Mare! Sabbia e sole! 🏖️”)
elif destinazione == 3:
    print(“Città d’arte! Musei! 🏛️”)
elif destinazione == 4:
    print(“Campagna! Relax totale! 🌾”)
else:
    print(“Avventura nella giungla! 🐒”)

8️⃣ Il Gioco del Videogioco

Scopri quale genere di videogioco giocherai tra 4 opzioni.

import random

genere = random.randint(1, 4)

if genere == 1:
    print(“FPS (sparatutto)! Al combattimento! 🔫”)
elif genere == 2:
    print(“RPG! Vivi un’avventura epica! ⚔️”)
elif genere == 3:
    print(“Gioco sportivo! Vince il migliore! ⚽”)
else:
    print(“Puzzle! Allena il cervello! 🧩”)

9️⃣ Il Gioco del Tempo Libero

Scopri cosa farai nel tempo libero tra 5 attività diverse.

import random

attivita = random.randint(1, 5)

if attivita == 1:
    print(“Leggerai un libro! 📖”)
elif attivita == 2:
    print(“Farai una passeggiata! 🚶”)
elif attivita == 3:
    print(“Guarderai una serie TV! 📺”)
elif attivita == 4:
    print(“Giocherai ai videogiochi! 🎮”)
else:
    print(“Farai un pisolino! 😴”)

🔟 Il Gioco del Quiz

Rispondi a una domanda casuale tra 3 e verifica se la risposta è corretta.

import random

domanda = random.randint(1, 3)

if domanda == 1:
    risposta = input(“Capitale d’Italia? (minuscolo) “)
    if risposta == “roma”:
        print(“Esatto! Sei un genio! 🌟”)
    else:
        print(“Sbagliato! La risposta è Roma!”)
elif domanda == 2:
    risposta = input(“Quanti pianeti nel sistema solare? “)
    if risposta == “8”:
        print(“Corretto! Bravo! 🪐”)
    else:
        print(“Sbagliato! Sono 8!”)
else:
    risposta = input(“Simbolo dell’acqua? (minuscolo) “)
    if risposta == “h2o”:
        print(“Giusto! Esperto di chimica! 🧪”)
    else:
        print(“Sbagliato! È H2O!”)

🧩 Tracce — Prova da Solo!

Niente soluzione: leggi la traccia, ragiona e scrivi il codice tu!

🎟️ Traccia 1 — Il Buttafuori della Discoteca

Argomenti: input, if/elif/else annidati

Sei il buttafuori di una discoteca. Prima chiedi all’utente quanti anni ha.
Se ha meno di 18 anni lo rimandi a casa con un messaggio.
Se ha 18 anni o più, chiedi se ha il documento con sé (l’utente risponde si oppure no).
Se ha il documento lo fai entrare. Se non ce l’ha lo rimandi a casa lo stesso.

▶ ESEMPIO DI ESECUZIONE (caso 1 — minorenne):

Quanti anni hai? 16
Spiacente, sei minorenne. Non puoi entrare! 🚫

▶ ESEMPIO DI ESECUZIONE (caso 2 — maggiorenne con documento):

Quanti anni hai? 20
Hai il documento con te? (si/no) si
Tutto ok! Benvenuto! Divertiti! 🎉

▶ ESEMPIO DI ESECUZIONE (caso 3 — maggiorenne senza documento):

Quanti anni hai? 19
Hai il documento con te? (si/no) no
Senza documento non puoi entrare. Torna con il documento! 📄

💡 Suggerimento: il secondo if (documento) va scritto dentro il primo if (maggiorenne). Questo si chiama if annidato!

🍕 Traccia 2 — Il Pizzaiolo Automatico

Argomenti: input, if/elif/else annidati

Sei un pizzaiolo robot. Chiedi all’utente che tipo di base vuole:
rossa (con pomodoro) o bianca (senza pomodoro).
Poi, in base alla scelta, chiedi quale ingrediente aggiungere tra quelli disponibili
e stampa il nome della pizza risultante con il suo prezzo.
Se l’utente scrive un ingrediente non disponibile, stampa un messaggio di errore.

Menù disponibile:

  • Base rossa + mozzarella → Margherita 5€
  • Base rossa + prosciutto → Prosciutto e Pomodoro 6€
  • Base rossa + tonno → Marinara al Tonno 6€
  • Base bianca + mozzarella → Pizza Bianca 5€
  • Base bianca + patate → Pizza Patate e Rosmarino 6€
  • Base bianca + prosciutto → Pizza Bianca e Prosciutto 7€

▶ ESEMPIO DI ESECUZIONE (caso 1 — base rossa con mozzarella):

Che base vuoi? (rossa/bianca) rossa
Che ingrediente? (mozzarella/prosciutto/tonno) mozzarella
Hai ordinato: Margherita 🍕 — Prezzo: 5€

▶ ESEMPIO DI ESECUZIONE (caso 2 — ingrediente non disponibile):

Che base vuoi? (rossa/bianca) rossa
Che ingrediente? (mozzarella/prosciutto/tonno) ananas
Ingrediente non disponibile! 🚫

💡 Suggerimento: il primo if/elif gestisce la base. Dentro ognuno metti un secondo if/elif/else per gli ingredienti. L’else finale di ogni blocco gestisce l’ingrediente non disponibile.

⚔️ Traccia 3 — Il Combattimento tra Eroi

Argomenti: input, random, if/elif/else

L’utente sceglie il proprio eroe tra Guerriero, Mago e Arciere.
Il computer sceglie casualmente il suo eroe tra gli stessi tre.
Ogni eroe batte uno specifico avversario e perde contro l’altro
(come carta/forbice/sasso). Le regole sono:

  • Guerriero batte Arciere (lo carica e lo travolge)
  • Arciere batte Mago (le frecce bucano lo scudo magico)
  • Mago batte Guerriero (l’incantesimo blocca l’armatura)
  • Stesso eroe → pareggio

Il programma stampa la scelta del computer, il risultato del combattimento e un messaggio descrittivo della battaglia.

▶ ESEMPIO DI ESECUZIONE (caso 1 — vittoria):

Scegli il tuo eroe (guerriero/mago/arciere): guerriero
Il computer ha scelto: arciere
HAI VINTO! ⚔️ Il tuo Guerriero ha travolto l'Arciere!

▶ ESEMPIO DI ESECUZIONE (caso 2 — sconfitta):

Scegli il tuo eroe (guerriero/mago/arciere): guerriero
Il computer ha scelto: mago
HAI PERSO! 🧙 Il Mago ha bloccato la tua armatura con un incantesimo!

▶ ESEMPIO DI ESECUZIONE (caso 3 — pareggio):

Scegli il tuo eroe (guerriero/mago/arciere): mago
Il computer ha scelto: mago
PAREGGIO! ✨ Due maghi si fronteggiano e nessuno prevale!

💡 Suggerimento: usa random.randint(1, 3) e assegna 1=guerriero, 2=mago, 3=arciere per il computer. Poi usa if/elif per confrontare le due scelte e determinare il vincitore.

🎓 Traccia 4 — La Pagella Automatica

Argomenti: input, if/elif/else annidati

Il programma chiede all’utente il voto in tre materie: Matematica, Italiano e Inglese
(voti da 1 a 10). Per ogni materia stampa un giudizio. Alla fine calcola la media
e stampa il giudizio finale complessivo:

Giudizio per ogni voto:

  • voto >= 9 → “Eccellente”
  • voto >= 7 → “Buono”
  • voto >= 6 → “Sufficiente”
  • voto < 6 → “Insufficiente”

Giudizio finale sulla media:

  • Media >= 8 → “Promosso con lode! 🌟”
  • Media >= 6 → “Promosso! ✅”
  • Media < 6 → “Rimandato. Studia di più! 📚”

▶ ESEMPIO DI ESECUZIONE:

Voto in Matematica: 8
Matematica: Buono
Voto in Italiano: 6
Italiano: Sufficiente
Voto in Inglese: 9
Inglese: Eccellente
 
Media: 7.67
Promosso! ✅

💡 Suggerimento: per ogni materia usa un blocco if/elif/else separato. La media si calcola sommando i tre voti e dividendo per 3. Poi un ultimo if/elif/else per il giudizio finale.

🎲 Traccia 5 — Il Labirinto della Fortuna

Argomenti: input, random, if/elif/else annidati

L’utente si trova all’ingresso di un labirinto e deve scegliere una direzione.
Il programma chiede: vai a destra o a sinistra?
In base alla scelta, il computer genera casualmente cosa succede:

Se va a destra (random da 1 a 3):

  • 1 → “Trovi un forziere pieno d’oro! Hai vinto! 💰”
  • 2 → “C’è un drago! Scappi appena in tempo! 🐉”
  • 3 → “Vicolo cieco. Devi tornare indietro! 🚧”

Se va a sinistra (random da 1 a 3):

  • 1 → “Trovi una mappa del tesoro! 🗺️”
  • 2 → “Cadi in una trappola! Perdi 10 punti vita! 🪤”
  • 3 → “Incontri un elfo amico che ti aiuta! 🧝”

▶ ESEMPIO DI ESECUZIONE (caso 1):

Sei all'ingresso del labirinto. Vai a destra o a sinistra? destra
Trovi un forziere pieno d'oro! Hai vinto! 💰

▶ ESEMPIO DI ESECUZIONE (caso 2):

Sei all'ingresso del labirinto. Vai a destra o a sinistra? sinistra
Cadi in una trappola! Perdi 10 punti vita! 🪤

▶ ESEMPIO DI ESECUZIONE (caso 3 — scelta non valida):

Sei all'ingresso del labirinto. Vai a destra o a sinistra? dritto
Scelta non valida! Puoi solo andare a destra o a sinistra! 🚫

💡 Suggerimento: il primo if/elif/else gestisce la direzione (destra/sinistra/non valida). Dentro destra e dentro sinistra metti un secondo if/elif/else con il numero casuale da 1 a 3.

🎰 Traccia 6 — La Slot Machine

Simula una slot machine con 3 rulli, ognuno dei quali mostra casualmente un numero da 1 a 3.
Stampa i 3 risultati e poi decidi il premio in base a questa logica:

  • Tutti e 3 i rulli uguali → “JACKPOT! Hai vinto 1000€! 🎉”
  • Solo i primi 2 uguali → “Quasi! Hai vinto 50€! 🤏”
  • Solo gli ultimi 2 uguali → “Sfiorato! Hai vinto 20€! 😅”
  • Nessuna coppia → “Niente da fare. Riprova! 😢”

💡 Suggerimento: usa random.randint(1, 3) tre volte per i tre rulli. Poi confronta le variabili con == e and.

🧍 Traccia 7 — Il Classificatore di Età

Chiedi all’utente di inserire la propria età e classifica la persona in una delle seguenti categorie.
Stampa anche un messaggio personalizzato per ognuna:

  • 0–12 anni → Bambino
  • 13–17 anni → Adolescente
  • 18–25 anni → Giovane adulto
  • 26–64 anni → Adulto
  • 65 anni e oltre → Anziano
  • Età negativa o superiore a 120 → “Età non valida!”

💡 Suggerimento: ricordati di convertire l’input in intero con int(). Gestisci prima i casi limite (età negativa o troppo alta) con i primi if.

✂️ Traccia 8 — Carta, Forbice, Sasso

Implementa il classico gioco contro il computer. L’utente sceglie tra
carta, forbice o sasso (inserendolo da tastiera in minuscolo).
Il computer sceglie casualmente. Il programma deve:

  • Stampare la scelta del computer
  • Dichiarare il vincitore (hai vinto, hai perso o pareggio)
  • Gestire il caso in cui l’utente inserisce una parola non valida

💡 Suggerimento: usa random.choice(["carta", "forbice", "sasso"]) per la scelta del computer. Poi confronta le due scelte con if, elif e and.

🚦 Traccia 9 — Il Semaforo Intelligente

Genera casualmente un colore del semaforo (verde, giallo o rosso)
e chiedi all’utente cosa fare. Il programma poi valuta se la risposta dell’utente è corretta:

  • Verde → risposta corretta: “vai”
  • Giallo → risposta corretta: “rallenta”
  • Rosso → risposta corretta: “fermati”

Se la risposta è giusta stampa un complimento, se è sbagliata stampa la risposta corretta.

💡 Suggerimento: usa random.choice() per scegliere il colore, poi usa if annidati: prima controlli il colore, poi confronti la risposta dell’utente con quella attesa.

🧙 Traccia 10 — L’Oracolo della Fortuna

Crea un programma interattivo che prima chiede all’utente il proprio nome,
poi genera casualmente un numero da 1 a 5 e assegna una “previsione del futuro” personalizzata.
La previsione deve contenere il nome dell’utente nel messaggio. Esempio:

  • 1 → “[nome], oggi troverai una moneta per strada! 🪙”
  • 2 → “[nome], qualcuno ti farà una sorpresa oggi! 🎁”
  • 3 → “[nome], attento: potresti rovesciarti il caffè! ☕”
  • 4 → “[nome], oggi è il tuo giorno fortunato! ⭐”
  • 5 → “[nome], un amico ha bisogno di te oggi! 🤝”

💡 Suggerimento: per inserire il nome nel messaggio puoi usare la f-string: print(f"{nome}, oggi troverai...") oppure la concatenazione con +.

📚 Riepilogo della Lezione

✅ Cosa abbiamo imparato:

  • Strutture condizionali: if, elif, else
  • Operatori di confronto: ==, !=, >, <, >=, <=
  • Operatori logici: and, or, not
  • Modulo random: randint(), random(), choice()
  • L'importanza dell'indentazione in Python

🔑 Concetti chiave da ricordare:

  • if esegue il codice solo se la condizione è True
  • elif permette di controllare condizioni alternative
  • else viene eseguito se tutte le condizioni precedenti sono False
  • L'indentazione (4 spazi) è OBBLIGATORIA dopo :
  • Python controlla le condizioni dall'alto verso il basso e si ferma alla prima vera
  • Per usare random bisogna prima importarlo con import random

🎉 Complimenti!

Hai completato la lezione sulle strutture di controllo condizionali!

Ora i tuoi programmi possono prendere decisioni intelligenti!
Questo apre infinite possibilità per creare giochi, quiz e applicazioni interattive.

💪 Prossimo passo: Continua a esercitarti con gli esempi!
Prova a modificarli e a creare le tue varianti!

Torna in alto