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

Scorri per mostrare il menu

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

Segui 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 di una collezione (oggetto iterabile). Ecco cosa è importante sapere sui cicli for:

Sintassi

Un ciclo for si avvia 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:

1234
groceryItems = ["milk", "eggs", "cheese", "butter"] for item in groceryItems: # Code to be executed print(item)
copy

Iterazione indica il 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 verificarsi di una condizione specifica, tipicamente gestita dai cicli while, che saranno approfonditi nel prossimo capitolo.

Applicazioni di 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 attività ripetitive.

Ecco come è possibile utilizzare un ciclo for per iterare sugli elementi di una stringa e di una tupla, in modo simile 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)
copy

Quando si utilizza un ciclo for con un dizionario, l'iterazione diretta sul dizionario cicla per impostazione predefinita sulle sue chiavi.

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)
copy

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)
copy

Se è necessario accedere contemporaneamente alle chiavi e ai valori, il metodo items() consente 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.")
copy

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 la combinazione di stringhe e variabili nelle istruzioni di stampa molto più leggibile, 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.")
copy

Nota

Si può notare che sono stati inseriti degli if all'interno del ciclo for, il che ha aggiunto un'ulteriore indentazione al blocco if. Come già menzionato, ogni blocco di codice indentato può essere considerato indipendente, indipendentemente dalla sua posizione. L'importante è assicurarsi che l'indentazione sia coerente e corretta tra i vari blocchi.

Compito

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.
  • All'interno del ciclo, ottenere current_stock e min_stock dalla lista dell'inventario.
  • Utilizzare un'istruzione if per verificare se la scorta attuale è minore o uguale alla scorta minima:
    • In tal caso, stampare un messaggio di riordino, aumentare la scorta di 20, aggiornare l'inventario e stampare il messaggio di aggiornamento.
  • Utilizzare un'altra istruzione if per verificare se il prodotto esiste nel dizionario promotions.

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

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 1

Chieda ad AI

expand
ChatGPT

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

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

Segui 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 di una collezione (oggetto iterabile). Ecco cosa è importante sapere sui cicli for:

Sintassi

Un ciclo for si avvia 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:

1234
groceryItems = ["milk", "eggs", "cheese", "butter"] for item in groceryItems: # Code to be executed print(item)
copy

Iterazione indica il 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 verificarsi di una condizione specifica, tipicamente gestita dai cicli while, che saranno approfonditi nel prossimo capitolo.

Applicazioni di 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 attività ripetitive.

Ecco come è possibile utilizzare un ciclo for per iterare sugli elementi di una stringa e di una tupla, in modo simile 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)
copy

Quando si utilizza un ciclo for con un dizionario, l'iterazione diretta sul dizionario cicla per impostazione predefinita sulle sue chiavi.

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)
copy

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)
copy

Se è necessario accedere contemporaneamente alle chiavi e ai valori, il metodo items() consente 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.")
copy

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 la combinazione di stringhe e variabili nelle istruzioni di stampa molto più leggibile, 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.")
copy

Nota

Si può notare che sono stati inseriti degli if all'interno del ciclo for, il che ha aggiunto un'ulteriore indentazione al blocco if. Come già menzionato, ogni blocco di codice indentato può essere considerato indipendente, indipendentemente dalla sua posizione. L'importante è assicurarsi che l'indentazione sia coerente e corretta tra i vari blocchi.

Compito

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.
  • All'interno del ciclo, ottenere current_stock e min_stock dalla lista dell'inventario.
  • Utilizzare un'istruzione if per verificare se la scorta attuale è minore o uguale alla scorta minima:
    • In tal caso, stampare un messaggio di riordino, aumentare la scorta di 20, aggiornare l'inventario e stampare il messaggio di aggiornamento.
  • Utilizzare un'altra istruzione if per verificare se il prodotto esiste nel dizionario promotions.

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

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 1
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