Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Cicli While | Cicli
Introduzione a Python

Scorri per mostrare il menu

book
Cicli While

I cicli while sono lo strumento principale per gestire l'iterazione indefinita, utile in scenari in cui il numero di iterazioni non è noto in anticipo, come il monitoraggio dei livelli di inventario fino a quando non raggiungono una soglia specifica.

Guarda come Alex dimostra l'utilizzo dei cicli while per gestire situazioni dinamiche:

Un ciclo while in Python esegue continuamente un blocco di codice finché una condizione specificata rimane True.

Sintassi

Per iniziare un ciclo while, si definisce una variabile contatore e si utilizza la parola chiave while seguita da una condizione booleana. La condizione è seguita da due punti :, che indicano l'inizio del blocco di codice del ciclo.

Il ciclo verrà eseguito ripetutamente finché la condizione diventa False. Tipicamente, la variabile contatore viene aggiornata all'interno del ciclo per far sì che la condizione diventi False e interrompere il ciclo.

Ecco un esempio di ciclo while:

1234567891011
# Handling a queue at a grocery store checkout queue_length = 5 # Initial number of people in the queue while queue_length > 0: # Start the `while` loop as long as the queue isn't empty print(f"Current queue size: {queue_length}") # Simulate serving a customer print("Serving the next customer...") # Decrease the queue length by 1 as a customer leaves # The `-=` operator is a shortcut for `queue_length = queue_length - 1` queue_length -= 1
copy

In questo esempio, queue_length funge da variabile contatore, iniziando da 5. Ad ogni iterazione del ciclo, il valore di queue_length diminuisce di 1 fino a raggiungere 0. A quel punto, il ciclo termina perché la condizione 0 > 0 risulta False.

Nota

È fondamentale aggiornare la variabile contatore all'interno del ciclo per arrivare a soddisfare la condizione di uscita dal ciclo. In caso contrario, il ciclo verrà eseguito all'infinito, impedendo l'esecuzione del codice successivo.

Applicazione d'esempio

Immagina di gestire la scorta di latte in un supermercato. Devi assicurarti che la scorta non scenda sotto un certo livello e, quando ciò accade, dovresti rifornire per mantenere il livello desiderato.

Un ciclo while è utile in questa situazione perché consente di rifornire il latte a incrementi, attraverso più iterazioni, fino a raggiungere il livello desiderato. Senza un ciclo while, dovresti calcolare la quantità esatta di latte da rifornire tutta in una volta.

Ad esempio, considera che un addetto può rifornire solo una quantità fissa di latte per ogni viaggio (ad esempio, 20 confezioni per rifornimento). Se la scorta non è completamente ripristinata, l'addetto torna al magazzino per portare un altro lotto di latte.

123456789101112131415161718
# 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 # Start the loop to restock milk until the stock exceeds the minimum required level while milk_stock < min_stock: # If the loop is running, the condition is `True`, indicating we need more milk print(f"Milk stock is low: {milk_stock} units remaining.") # Simulate the process of restocking milk print("Restocking milk...") # Increase the stock by the quantity the worker can bring in one trip milk_stock += restock_quantity # Output the final stock level after restocking is complete print(f"Milk stock updated: {milk_stock} units, which is now sufficient.")
copy

Nota

milk_stock += restock_quantity è equivalente a milk_stock = milk_stock + restock_quantity. Si tratta semplicemente di un modo più conciso e leggibile per esprimere la stessa operazione.

Il diagramma di flusso sopra illustra la logica alla base del ciclo while utilizzato per gestire l'inventario del latte. Si noti come la variabile contatore milk_stock, che parte da 15, venga incrementata della restock_quantity a ogni iterazione del ciclo.

Il ciclo continua a essere eseguito finché milk_stock non supera la soglia min_stock di 50, momento in cui si interrompe.

Compito

Swipe to start coding

Gestione dell'inventario di un negozio di alimentari utilizzando cicli while per garantire che Bread, Eggs e Apples rispettino i livelli minimi di scorta. Le quantità di riassortimento sono memorizzate in un dizionario.

  • Utilizzare un ciclo while per verificare se "Bread" è al di sotto del livello minimo di scorta. In tal caso, aumentare la scorta utilizzando la quantità di riassortimento corrispondente dal dizionario.
  • Ripetere la stessa logica per "Eggs" e "Apples", ciascuno con il proprio ciclo while.
  • Dopo il riassortimento, scorrere il dizionario inventory con un ciclo for e stampare i livelli finali di scorta per tutti gli articoli.

Requisiti di output

  • Per ogni articolo riassortito, stampare:
    "<Item> stock is low: <$current_stock> units. Restocking..."
  • Dopo tutti i riassortimenti, stampare Final Inventory after restocking: seguito dai livelli di scorta aggiornati:
    "<Item>: <$current_stock> units (Minimum required: <$minimum_stock> units)"
  • Inserire una nuova riga prima dell'inventario finale utilizzando \n.
  • Utilizzare f-string per la formattazione e le virgolette singole all'interno delle stringhe tra virgolette doppie per le chiavi del dizionario.

Nota

Per evitare conflitti di sintassi nelle f-string, utilizzare le virgolette doppie attorno alla stringa e le virgolette singole all'interno: f"Bread stock is low: {inventory['Bread'][0]} units."
Utilizzare \n per iniziare una nuova riga nell'output: "First line.\nSecond line."

Soluzione

Switch to desktopCambia al desktop per esercitarti nel mondo realeContinua da dove ti trovi utilizzando una delle opzioni seguenti
Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 5. Capitolo 2
Siamo spiacenti che qualcosa sia andato storto. Cosa è successo?

Chieda ad AI

expand
ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

book
Cicli While

I cicli while sono lo strumento principale per gestire l'iterazione indefinita, utile in scenari in cui il numero di iterazioni non è noto in anticipo, come il monitoraggio dei livelli di inventario fino a quando non raggiungono una soglia specifica.

Guarda come Alex dimostra l'utilizzo dei cicli while per gestire situazioni dinamiche:

Un ciclo while in Python esegue continuamente un blocco di codice finché una condizione specificata rimane True.

Sintassi

Per iniziare un ciclo while, si definisce una variabile contatore e si utilizza la parola chiave while seguita da una condizione booleana. La condizione è seguita da due punti :, che indicano l'inizio del blocco di codice del ciclo.

Il ciclo verrà eseguito ripetutamente finché la condizione diventa False. Tipicamente, la variabile contatore viene aggiornata all'interno del ciclo per far sì che la condizione diventi False e interrompere il ciclo.

Ecco un esempio di ciclo while:

1234567891011
# Handling a queue at a grocery store checkout queue_length = 5 # Initial number of people in the queue while queue_length > 0: # Start the `while` loop as long as the queue isn't empty print(f"Current queue size: {queue_length}") # Simulate serving a customer print("Serving the next customer...") # Decrease the queue length by 1 as a customer leaves # The `-=` operator is a shortcut for `queue_length = queue_length - 1` queue_length -= 1
copy

In questo esempio, queue_length funge da variabile contatore, iniziando da 5. Ad ogni iterazione del ciclo, il valore di queue_length diminuisce di 1 fino a raggiungere 0. A quel punto, il ciclo termina perché la condizione 0 > 0 risulta False.

Nota

È fondamentale aggiornare la variabile contatore all'interno del ciclo per arrivare a soddisfare la condizione di uscita dal ciclo. In caso contrario, il ciclo verrà eseguito all'infinito, impedendo l'esecuzione del codice successivo.

Applicazione d'esempio

Immagina di gestire la scorta di latte in un supermercato. Devi assicurarti che la scorta non scenda sotto un certo livello e, quando ciò accade, dovresti rifornire per mantenere il livello desiderato.

Un ciclo while è utile in questa situazione perché consente di rifornire il latte a incrementi, attraverso più iterazioni, fino a raggiungere il livello desiderato. Senza un ciclo while, dovresti calcolare la quantità esatta di latte da rifornire tutta in una volta.

Ad esempio, considera che un addetto può rifornire solo una quantità fissa di latte per ogni viaggio (ad esempio, 20 confezioni per rifornimento). Se la scorta non è completamente ripristinata, l'addetto torna al magazzino per portare un altro lotto di latte.

123456789101112131415161718
# 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 # Start the loop to restock milk until the stock exceeds the minimum required level while milk_stock < min_stock: # If the loop is running, the condition is `True`, indicating we need more milk print(f"Milk stock is low: {milk_stock} units remaining.") # Simulate the process of restocking milk print("Restocking milk...") # Increase the stock by the quantity the worker can bring in one trip milk_stock += restock_quantity # Output the final stock level after restocking is complete print(f"Milk stock updated: {milk_stock} units, which is now sufficient.")
copy

Nota

milk_stock += restock_quantity è equivalente a milk_stock = milk_stock + restock_quantity. Si tratta semplicemente di un modo più conciso e leggibile per esprimere la stessa operazione.

Il diagramma di flusso sopra illustra la logica alla base del ciclo while utilizzato per gestire l'inventario del latte. Si noti come la variabile contatore milk_stock, che parte da 15, venga incrementata della restock_quantity a ogni iterazione del ciclo.

Il ciclo continua a essere eseguito finché milk_stock non supera la soglia min_stock di 50, momento in cui si interrompe.

Compito

Swipe to start coding

Gestione dell'inventario di un negozio di alimentari utilizzando cicli while per garantire che Bread, Eggs e Apples rispettino i livelli minimi di scorta. Le quantità di riassortimento sono memorizzate in un dizionario.

  • Utilizzare un ciclo while per verificare se "Bread" è al di sotto del livello minimo di scorta. In tal caso, aumentare la scorta utilizzando la quantità di riassortimento corrispondente dal dizionario.
  • Ripetere la stessa logica per "Eggs" e "Apples", ciascuno con il proprio ciclo while.
  • Dopo il riassortimento, scorrere il dizionario inventory con un ciclo for e stampare i livelli finali di scorta per tutti gli articoli.

Requisiti di output

  • Per ogni articolo riassortito, stampare:
    "<Item> stock is low: <$current_stock> units. Restocking..."
  • Dopo tutti i riassortimenti, stampare Final Inventory after restocking: seguito dai livelli di scorta aggiornati:
    "<Item>: <$current_stock> units (Minimum required: <$minimum_stock> units)"
  • Inserire una nuova riga prima dell'inventario finale utilizzando \n.
  • Utilizzare f-string per la formattazione e le virgolette singole all'interno delle stringhe tra virgolette doppie per le chiavi del dizionario.

Nota

Per evitare conflitti di sintassi nelle f-string, utilizzare le virgolette doppie attorno alla stringa e le virgolette singole all'interno: f"Bread stock is low: {inventory['Bread'][0]} units."
Utilizzare \n per iniziare una nuova riga nell'output: "First line.\nSecond line."

Soluzione

Switch to desktopCambia al desktop per esercitarti nel mondo realeContinua da dove ti trovi utilizzando una delle opzioni seguenti
Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 5. Capitolo 2
Switch to desktopCambia al desktop per esercitarti nel mondo realeContinua da dove ti trovi utilizzando una delle opzioni seguenti
Siamo spiacenti che qualcosa sia andato storto. Cosa è successo?
some-alt