Cicli While

I cicli while sono fondamentali per gestire l’iterazione indefinita, cioè situazioni in cui non sappiamo in anticipo quante volte dovrà ripetersi un’operazione. Nel nostro supermercato, questo è utile per controllare livelli di scorte, code alla cassa, o qualunque processo che continua finché una condizione rimane vera.


▶ Come funziona un ciclo while?

Un ciclo while esegue ripetutamente un blocco di codice finché la condizione specificata è True.

✔ Sintassi di base

while condizione:
    # blocco di codice da eseguire ripetutamente

Per evitare cicli infiniti, normalmente la condizione viene aggiornata all’interno del ciclo.


🧑‍🍳 Esempio: Gestione di una coda alla cassa

# Handling a queue at a grocery store checkout
queue_length = 5  # Initial number of people in the queue

while queue_length > 0:  # Continue while the queue isn't empty
    print(f"Current queue size: {queue_length}")

    print("Serving the next customer...")

    # Reduce queue by 1
    queue_length -= 1

👉 Il ciclo procede finché queue_length non arriva a 0.


⚠ Nota importante

È essenziale aggiornare la variabile di controllo dentro il ciclo, altrimenti la condizione potrebbe non diventare mai False, producendo un ciclo infinito.


🥛 Applicazione di esempio: Rifornimento del latte

Usiamo un ciclo while per simulare un addetto che rifornisce il latte a più riprese.

# Initial amount of milk in stock
milk_stock = 15
# Minimum stock level before restocking is necessary
min_stock = 50
# Quantity a worker can restock at one time
restock_quantity = 20

# Continue restocking until the stock is above the minimum threshold
while milk_stock < min_stock:
    print(f"Milk stock is low: {milk_stock} units remaining.")
    print("Restocking milk...")
    milk_stock += restock_quantity

print(f"Milk stock updated: {milk_stock} units, which is now sufficient.")

👉 Il ciclo continua finché il livello scorte non è sufficiente.


Compito — Countdown dello Sconto

Crea un timer di conto alla rovescia che raccoglie tutti i valori in una lista usando un ciclo while.

✔ Istruzioni

  1. Usa un ciclo while per contare da start_number fino a 1.

  2. Ad ogni iterazione:

    • aggiungi il numero corrente alla lista countdown_values
    • decrementa di 1
  3. Al termine stampa:

    • Discount countdown complete!
    • la lista contenente tutti i valori del conto alla rovescia