8.1 Ciclo for
Il fatto di poter eseguire un gruppo di comandi condizionatamente è fantastico. Ma cosa succede se voglio eseguire un'azione 100 volte? Come faccio?
Per questo, in Python ci sono i cicli. E per il nostro compito è perfetto il ciclo for. La forma generale dell'operatore for è la seguente:
for variabile in elenco_valori:
comando1
comando1
comandoN
Dove elenco_valori è un insieme di valori: lista, stringa, dizionario (di cui parleremo più avanti).
La variabile assume successivamente i valori di elenco_valori, e per ognuno di essi viene eseguito il blocco di comandi.
Esempio:
| Esempio | Spiegazione |
|---|---|
|
1. Alla variabile fruit viene assegnato il valore "apple" e viene eseguito il comando print(fruit ) 2. Alla variabile fruit viene assegnato il valore "banana" e viene eseguito il comando print(fruit ) 3. Alla variabile fruit viene assegnato il valore "cherry" e viene eseguito il comando print(fruit ) |
Ecco come funziona il ciclo:
Se nell'elenco, dopo la parola in, ci sono 10 valori, allora il blocco di comandi verrà eseguito 10 volte.
Per ogni valore di elenco_valori accadono due cose:
- Alla variabile del ciclo (indicata dopo la parola
for) viene assegnato il valore successivo da elenco_valori. - Viene quindi eseguito il blocco di comandi.
Un altro esempio:
| Esempio | Spiegazione |
|---|---|
|
Il ciclo stamperà a schermo i numeri: 1 2 3 4 5 6 7 8 9 10 |
8.2 Definire un intervallo — range
Nell'ultimo esempio hai potuto vedere che stampare 10 numeri a schermo è molto semplice. Ma cosa succede se vogliamo eseguire il ciclo 100 volte? O 1000?
Ovviamente c'è una soluzione. In Python esiste una funzione range() per generare una sequenza di numeri, che in combinazione con il ciclo for rende potente il controllo dei compiti ripetitivi.
La funzione range() può essere utilizzata in diversi modi, a seconda del numero di argomenti passati ad essa.
Elementi di base di range():
Un argomento: range(n) genera una sequenza da 0 a n-1. È utile quando è necessario eseguire un'azione un numero specifico di volte.
for i in range(5):
print(i) # Stampa i numeri da 0 a 4
Due argomenti: range(start, stop) genera una sequenza da start a stop-1. È utile per iniziare l'iterazione da un numero specifico.
for i in range(1, 6):
print(i) # Stampa i numeri da 1 a 5
Tre argomenti: range(start, stop, step) aggiunge un terzo argomento step, che determina il passo tra i numeri nella sequenza.
for i in range(0, 10, 2):
print(i) # Stampa i numeri pari da 0 a 8
Cicli inversi: range() può generare numeri in ordine inverso, permettendo di eseguire iterazioni inverse.
for i in range(10, 0, -1):
print(i) # Stampa i numeri da 10 a 1
La funzione range() combinata con il ciclo for offre un potente strumento per controllare le iterazioni in Python. Capire le sue capacità aiuta a creare cicli più efficienti e chiari, che sono parte integrante di qualsiasi programma.
8.3 Ciclo su lista
Se vuoi eseguire un gruppo di azioni su valori diversi, la funzione range() non è adatta, puoi sempre raggruppare questi valori in una lista utilizzando le parentesi quadre. L'aspetto generale di questa operazione è così:
for variabile in [val1, val2, …, valN]:
comando1
comando1
comandoN
Basta elencare i valori separati da virgole, e il ciclo verrà eseguito per ciascuno di essi, mentre la variabile assumerà successivamente ogni valore. Esempio:
| Esempio | Spiegazione |
|---|---|
|
Il ciclo stamperà a schermo le stringhe: apple banana cherry |
Puoi specificare numeri nell'elenco, anche subito nel ciclo dopo la parola in:
| Esempio | Spiegazione |
|---|---|
|
Il ciclo stamperà a schermo i numeri: 0.99 2.75 0.25 |
In una lista puoi elencare oggetti di qualsiasi tipo:
| Esempio | Spiegazione |
|---|---|
|
Il ciclo stamperà a schermo le stringhe: 0.99 apple -1 True |
GO TO FULL VERSION