Cicli For
Benvenuto nella sezione dedicata ai cicli!
In questo capitolo, approfondiremo come i cicli rappresentino uno strumento fondamentale per automatizzare compiti ripetitivi e siano essenziali per gestire in modo efficiente liste e altri tipi di dati iterabili.
Unisciti ad Alex mentre dimostra l'utilizzo dei cicli for
per semplificare le operazioni nel nostro negozio di alimentari:
L'utilizzo dei cicli for
in Python consente di eseguire un blocco di codice ripetutamente per ogni elemento in una collezione (oggetto iterabile). Ecco cosa è importante sapere sui cicli for
:
Sintassi
Si avvia un ciclo for
con la parola chiave for
, seguita da un nome di variabile come item
per rappresentare ciascun elemento nella sequenza. Segue la parola chiave in
e poi l'oggetto iterabile, ad esempio groceryItems
. Il blocco di codice all'interno del ciclo viene eseguito una volta per ogni elemento.
In questo esempio, item
funge da variabile iteratrice che accede sequenzialmente a ciascun elemento della lista groceryItems
ed esegue la funzione print()
per ognuno di essi:
1234groceryItems = ["milk", "eggs", "cheese", "butter"] for item in groceryItems: # Code to be executed print(item)
Iterazione si riferisce al processo di esecuzione ripetuta di un blocco di codice. Python supporta due principali tipi di iterazione:
Iterazione Definita
Quando il numero di iterazioni è conosciuto in anticipo. I cicli for
sono un esempio classico, interrompendosi automaticamente quando raggiungono la fine della sequenza.
Iterazione Indefinita
In cui l'esecuzione continua fino al soddisfacimento di una condizione specifica, tipicamente gestita dai cicli while
, che saranno approfonditi nel prossimo capitolo.
Applicazioni Esempio
I cicli for
in Python possono essere utilizzati con qualsiasi oggetto iterabile (lists
, tuples
, dictionaries
, strings
), consentendo la manipolazione dei dati elemento per elemento.
Che si tratti di accedere agli elementi di una lista, alle chiavi o ai valori di un dizionario, o ai caratteri di una stringa, i cicli for
offrono una sintassi chiara che semplifica il codice per le operazioni ripetitive.
Ecco come è possibile utilizzare un ciclo for
per iterare sugli elementi di una stringa e di una tupla, in modo analogo a quanto visto con le liste:
123456789# Print each letter in the string vegetable = "Carrot" for letter in vegetable: print(letter) # Tuple containing different categories of the grocery store categories = ("Produce", "Bakery", "Meat", "Dairy") for category in categories: print(category)
Quando si utilizza un ciclo for
con un dizionario, l'iterazione diretta sul dizionario cicla sulle sue chiavi per impostazione predefinita.
Ecco cosa aspettarsi quando si itera direttamente su un dizionario:
1234567# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print each dictionary key print("Product list:") for product in productStock: print(product)
Nota come la variabile iteratore product
accede solo alle chiavi del dizionario.
Per iterare sui valori di un dizionario, puoi utilizzare il metodo values()
.
Questo è utile per operazioni che richiedono l'accesso ai valori senza la necessità di fare riferimento alle chiavi:
1234567# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print each dictionary value print("Stock counts:") for stock in productStock.values(): print(stock)
Se hai bisogno di accedere contemporaneamente alle chiavi e ai valori, il metodo items()
permette di scorrere le coppie chiave-valore in un dizionario.
Per utilizzare questo metodo in un ciclo for
, si specificano due variabili prima della parola chiave in
— una per la chiave (product
) e una per il valore (stock
):
1234567# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print both the key and value for each dictionary item print("Inventory details:") for product, stock in productStock.items(): print(f"{product} has {stock} units in stock.")
Nota
In questo esempio, utilizziamo le f-string (note anche come stringhe letterali formattate) per inserire direttamente le variabili nelle stringhe. La sintassi è semplice: aggiungi una
f
prima del segno di apertura delle virgolette"
e inserisci variabili o espressioni tra parentesi graffe{}
all'interno della stringa. Questo metodo rende molto più leggibile la combinazione di stringhe e variabili nelle istruzioni di stampa, quindi vale la pena impararlo.
Sfruttando la conoscenza di if/else
, operatori booleani e cicli for
, è possibile eseguire un semplice controllo dell'inventario su un dizionario:
123456789101112131415161718# Product names as keys and their stock levels as values inventory = { "milk": 120, "eggs": 30, "bread": 80, "apples": 10 } # The threshold stock level that triggers a restock minimum_stock = 50 # Evaluating stock levels and deciding if restocking is necessary print("Checking inventory status:") for product, quantity in inventory.items(): if quantity < minimum_stock: print(f"{product} requires restocking. Only {quantity} units remain.") else: print(f"{product} has adequate stock with {quantity} units available.")
Nota
Potresti notare che abbiamo inserito delle istruzioni
if
all'interno del ciclofor
, il che ha aggiunto un'ulteriore indentazione al bloccoif
. Come menzionato in precedenza, ogni blocco di codice indentato può essere considerato indipendente, indipendentemente da dove sia posizionato. L'importante è assicurarsi che l'indentazione sia coerente e corretta tra di essi.
Swipe to start coding
Gestione delle scorte e delle promozioni in un negozio di alimentari tramite l'iterazione sull'inventario, il controllo delle condizioni di riordino e l'applicazione delle promozioni.
Iterare su ciascun prodotto nel dizionario inventory
e:
- Se la scorta attuale di un prodotto è minore o uguale alla sua scorta minima:
- Stampare un messaggio di riordino.
- Aumentare la scorta di
20
e aggiornare il valore nel dizionario. - Successivamente, stampare la scorta aggiornata.
- Utilizzare un altro
if
per verificare se il prodotto esiste nel dizionariopromotions
e stampare il messaggio. Altrimenti, stampare un messaggio che indica l'assenza di promozioni disponibili.
Requisiti di output
Per ogni articolo, stampare:
--- Processing: <item> ---
- Se è necessario il riordino:
<item> needs restocking. Current stock: <current_stock>. Minimum required: <min_stock>
Updated stock for <item>: <updated_stock>
- Se esiste una promozione:
Promotion for <item>: <promotion_details>
- Altrimenti:
No promotions for <item>
Soluzione
Grazie per i tuoi commenti!
single
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Can you explain the difference between iterating over a list, tuple, and dictionary?
How do I use a for loop to access both keys and values in a dictionary?
Can you give more examples of using for loops with different data types?
Awesome!
Completion rate improved to 2.17
Cicli For
Scorri per mostrare il menu
Benvenuto nella sezione dedicata ai cicli!
In questo capitolo, approfondiremo come i cicli rappresentino uno strumento fondamentale per automatizzare compiti ripetitivi e siano essenziali per gestire in modo efficiente liste e altri tipi di dati iterabili.
Unisciti ad Alex mentre dimostra l'utilizzo dei cicli for
per semplificare le operazioni nel nostro negozio di alimentari:
L'utilizzo dei cicli for
in Python consente di eseguire un blocco di codice ripetutamente per ogni elemento in una collezione (oggetto iterabile). Ecco cosa è importante sapere sui cicli for
:
Sintassi
Si avvia un ciclo for
con la parola chiave for
, seguita da un nome di variabile come item
per rappresentare ciascun elemento nella sequenza. Segue la parola chiave in
e poi l'oggetto iterabile, ad esempio groceryItems
. Il blocco di codice all'interno del ciclo viene eseguito una volta per ogni elemento.
In questo esempio, item
funge da variabile iteratrice che accede sequenzialmente a ciascun elemento della lista groceryItems
ed esegue la funzione print()
per ognuno di essi:
1234groceryItems = ["milk", "eggs", "cheese", "butter"] for item in groceryItems: # Code to be executed print(item)
Iterazione si riferisce al processo di esecuzione ripetuta di un blocco di codice. Python supporta due principali tipi di iterazione:
Iterazione Definita
Quando il numero di iterazioni è conosciuto in anticipo. I cicli for
sono un esempio classico, interrompendosi automaticamente quando raggiungono la fine della sequenza.
Iterazione Indefinita
In cui l'esecuzione continua fino al soddisfacimento di una condizione specifica, tipicamente gestita dai cicli while
, che saranno approfonditi nel prossimo capitolo.
Applicazioni Esempio
I cicli for
in Python possono essere utilizzati con qualsiasi oggetto iterabile (lists
, tuples
, dictionaries
, strings
), consentendo la manipolazione dei dati elemento per elemento.
Che si tratti di accedere agli elementi di una lista, alle chiavi o ai valori di un dizionario, o ai caratteri di una stringa, i cicli for
offrono una sintassi chiara che semplifica il codice per le operazioni ripetitive.
Ecco come è possibile utilizzare un ciclo for
per iterare sugli elementi di una stringa e di una tupla, in modo analogo a quanto visto con le liste:
123456789# Print each letter in the string vegetable = "Carrot" for letter in vegetable: print(letter) # Tuple containing different categories of the grocery store categories = ("Produce", "Bakery", "Meat", "Dairy") for category in categories: print(category)
Quando si utilizza un ciclo for
con un dizionario, l'iterazione diretta sul dizionario cicla sulle sue chiavi per impostazione predefinita.
Ecco cosa aspettarsi quando si itera direttamente su un dizionario:
1234567# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print each dictionary key print("Product list:") for product in productStock: print(product)
Nota come la variabile iteratore product
accede solo alle chiavi del dizionario.
Per iterare sui valori di un dizionario, puoi utilizzare il metodo values()
.
Questo è utile per operazioni che richiedono l'accesso ai valori senza la necessità di fare riferimento alle chiavi:
1234567# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print each dictionary value print("Stock counts:") for stock in productStock.values(): print(stock)
Se hai bisogno di accedere contemporaneamente alle chiavi e ai valori, il metodo items()
permette di scorrere le coppie chiave-valore in un dizionario.
Per utilizzare questo metodo in un ciclo for
, si specificano due variabili prima della parola chiave in
— una per la chiave (product
) e una per il valore (stock
):
1234567# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print both the key and value for each dictionary item print("Inventory details:") for product, stock in productStock.items(): print(f"{product} has {stock} units in stock.")
Nota
In questo esempio, utilizziamo le f-string (note anche come stringhe letterali formattate) per inserire direttamente le variabili nelle stringhe. La sintassi è semplice: aggiungi una
f
prima del segno di apertura delle virgolette"
e inserisci variabili o espressioni tra parentesi graffe{}
all'interno della stringa. Questo metodo rende molto più leggibile la combinazione di stringhe e variabili nelle istruzioni di stampa, quindi vale la pena impararlo.
Sfruttando la conoscenza di if/else
, operatori booleani e cicli for
, è possibile eseguire un semplice controllo dell'inventario su un dizionario:
123456789101112131415161718# Product names as keys and their stock levels as values inventory = { "milk": 120, "eggs": 30, "bread": 80, "apples": 10 } # The threshold stock level that triggers a restock minimum_stock = 50 # Evaluating stock levels and deciding if restocking is necessary print("Checking inventory status:") for product, quantity in inventory.items(): if quantity < minimum_stock: print(f"{product} requires restocking. Only {quantity} units remain.") else: print(f"{product} has adequate stock with {quantity} units available.")
Nota
Potresti notare che abbiamo inserito delle istruzioni
if
all'interno del ciclofor
, il che ha aggiunto un'ulteriore indentazione al bloccoif
. Come menzionato in precedenza, ogni blocco di codice indentato può essere considerato indipendente, indipendentemente da dove sia posizionato. L'importante è assicurarsi che l'indentazione sia coerente e corretta tra di essi.
Swipe to start coding
Gestione delle scorte e delle promozioni in un negozio di alimentari tramite l'iterazione sull'inventario, il controllo delle condizioni di riordino e l'applicazione delle promozioni.
Iterare su ciascun prodotto nel dizionario inventory
e:
- Se la scorta attuale di un prodotto è minore o uguale alla sua scorta minima:
- Stampare un messaggio di riordino.
- Aumentare la scorta di
20
e aggiornare il valore nel dizionario. - Successivamente, stampare la scorta aggiornata.
- Utilizzare un altro
if
per verificare se il prodotto esiste nel dizionariopromotions
e stampare il messaggio. Altrimenti, stampare un messaggio che indica l'assenza di promozioni disponibili.
Requisiti di output
Per ogni articolo, stampare:
--- Processing: <item> ---
- Se è necessario il riordino:
<item> needs restocking. Current stock: <current_stock>. Minimum required: <min_stock>
Updated stock for <item>: <updated_stock>
- Se esiste una promozione:
Promotion for <item>: <promotion_details>
- Altrimenti:
No promotions for <item>
Soluzione
Grazie per i tuoi commenti!
Awesome!
Completion rate improved to 2.17single