Cicli for
Perché usare i cicli?
Sezione intitolata “Perché usare i cicli?”Per salutare 100 studenti uno per uno senza un ciclo dovresti scrivere print("Ciao!") cento volte. Un ciclo esegue la stessa istruzione per ogni elemento.
Il ciclo for è adatto quando sai già cosa vuoi scorrere: una lista di nomi, le lettere di una parola o i numeri da 1 a 10.
Come funziona
Sezione intitolata “Come funziona”for elemento in sequenza: # codice da eseguire per ogni elementoAd ogni iterazione, elemento riceve il valore successivo della sequenza. Quando la sequenza termina, termina anche il ciclo.
Scorrere una lista
Sezione intitolata “Scorrere una lista”L’uso più comune consiste nell’eseguire un’azione per ogni elemento di una lista.
frutta = ["mela", "banana", "ciliegia"]
for frutto in frutta: print(frutto)Output:
melabananaciliegiaLa variabile frutto (che hai scelto tu) prende il valore "mela" al primo giro, "banana" al secondo, "ciliegia" al terzo.
Scorrere una stringa
Sezione intitolata “Scorrere una stringa”Una stringa è una sequenza di caratteri, quindi puoi visitare le lettere una alla volta:
for carattere in "Python": print(carattere)Output:
PythonRipetere un numero preciso di volte con range()
Sezione intitolata “Ripetere un numero preciso di volte con range()”Per eseguire un’istruzione esattamente N volte, usa range():
for i in range(5): print("Ciao!")Il codice stampa “Ciao!” 5 volte. La variabile i assume i valori 0, 1, 2, 3 e 4.
Vedi la sezione su range() per tutti i dettagli su come usarla.
Sapere anche la posizione con enumerate()
Sezione intitolata “Sapere anche la posizione con enumerate()”Se mentre scorri una lista ti servono sia il valore sia la posizione, usa enumerate():
frutta = ["mela", "banana", "ciliegia"]
for indice, frutto in enumerate(frutta): print(f"{indice}: {frutto}")Output:
0: mela1: banana2: ciliegiaPuoi anche scegliere da quale numero partire:
for numero, frutto in enumerate(frutta, start=1): print(f"{numero}. {frutto}")Output:
1. mela2. banana3. ciliegiaScorrere due liste insieme con zip()
Sezione intitolata “Scorrere due liste insieme con zip()”zip() abbina gli elementi di due liste nella stessa posizione:
nomi = ["Alice", "Bob", "Carlo"]voti = [8, 7, 9]
for nome, voto in zip(nomi, voti): print(f"{nome} ha preso {voto}")Output:
Alice ha preso 8Bob ha preso 7Carlo ha preso 9Interrompere il ciclo: break e continue
Sezione intitolata “Interrompere il ciclo: break e continue”break ferma il ciclo immediatamente:
for i in range(10): if i == 5: break # quando i vale 5, esci dal ciclo print(i)# stampa: 0, 1, 2, 3, 4continue salta questo giro e va al prossimo:
for i in range(10): if i % 2 == 0: continue # se il numero è pari, saltalo print(i)# stampa solo i numeri dispari: 1, 3, 5, 7, 9Cicli dentro cicli (annidati)
Sezione intitolata “Cicli dentro cicli (annidati)”Puoi inserire un ciclo for dentro un altro, per esempio per costruire una tabellina:
for i in range(1, 4): for j in range(1, 4): print(f"{i} x {j} = {i * j}") print("---")Output:
1 x 1 = 11 x 2 = 21 x 3 = 32 x 1 = 22 x 2 = 42 x 3 = 6...Scorrere un dizionario
Sezione intitolata “Scorrere un dizionario”I dizionari possono essere scorsi in modi diversi:
persona = {"nome": "Alice", "eta": 16, "citta": "Roma"}
# Solo le chiavifor chiave in persona: print(chiave) # nome, eta, citta
# Chiavi e valori insiemefor chiave, valore in persona.items(): print(f"{chiave}: {valore}")