← Torna al blog Programmazione · 8 min di lettura

Il ciclo for in Python: come ripetere le istruzioni

📅 15 giugno 2026 — di Alessandro Simone

Quando devi ripetere la stessa operazione molte volte, copiare e incollare il codice non è la soluzione: esiste il ciclo for. È uno degli strumenti più usati in assoluto in Python, e una volta capito ti cambia il modo di programmare. In questa guida vediamo come funziona, a cosa serve la funzione range, e come il for nasce in realtà da un'idea che hai già visto nei diagrammi di flusso.

Cos'è il ciclo for?

Il ciclo for serve a ripetere un blocco di istruzioni un certo numero di volte, oppure per ogni elemento di un insieme di dati. L'idea è semplice: invece di scrivere dieci volte la stessa riga, dici a Python "ripeti questa operazione per ogni elemento", e lui la esegue da solo.

Pensa a quando l'insegnante fa l'appello: scorre l'elenco e per ogni studente fa la stessa cosa, segna presente o assente. Non inventa un'azione diversa per ognuno: ripete lo stesso gesto su ogni nome della lista. Il for fa esattamente questo.

Da dove nasce il ciclo for? Il diagramma di flusso

Prima di vedere il codice, guardiamo il ragionamento. Il ciclo è una delle tre strutture di base della programmazione, e nei diagrammi di flusso si rappresenta come un percorso che torna su sé stesso finché una condizione resta vera. Eccolo disegnato.

Inizio Ci sono ancora elementi? Esegui le istruzioni ripeti no Fine
La struttura iterativa: finché ci sono elementi, si eseguono le istruzioni e si torna a controllare.

Segui le frecce: si controlla se ci sono ancora elementi; se sì, si eseguono le istruzioni e si torna indietro a controllare; quando non ce ne sono più, si esce e si va alla fine. Questo "tornare indietro" è il cuore del ciclo. Se vuoi ripassare i simboli e come si legge uno schema così, li ho spiegati nell'articolo su cos'è un diagramma di flusso.

Come si scrive un ciclo for in Python?

Quel diagramma, in Python, diventa pochissime righe. La forma base del for è questa:

# Per ogni elemento di un gruppo, fai qualcosa
materie = ["Python", "SQL", "Reti"]
for materia in materie:
    print(materia)

# Output:
# Python
# SQL
# Reti

Leggiamolo come si legge in italiano: "per ogni materia in materie, stampa la materia". La variabile materia assume a turno il valore di ogni elemento della lista, e il blocco indentato sotto viene eseguito una volta per ciascuno. Quando gli elementi finiscono, il ciclo si ferma da solo: è esattamente il ramo "no" del diagramma.

💡 Attenzione all'indentazione. In Python le righe da ripetere vanno spostate a destra (di solito 4 spazi). Quell'indentazione non è estetica: è ciò che dice a Python quali righe stanno dentro il ciclo. Sbagliarla è l'errore numero uno dei principianti.

A cosa serve la funzione range?

Spesso non vuoi scorrere una lista, ma ripetere qualcosa un numero preciso di volte. Per questo c'è range(), che genera una sequenza di numeri:

# Ripeti 5 volte (da 0 a 4)
for i in range(5):
    print("Ripetizione numero", i)

# Output:
# Ripetizione numero 0
# Ripetizione numero 1
# Ripetizione numero 2
# Ripetizione numero 3
# Ripetizione numero 4

Qui c'è la cosa che confonde di più all'inizio: range(5) produce i numeri da 0 a 4, non da 1 a 5. Parte da zero e l'ultimo numero è escluso. Quindi sono comunque cinque valori (0, 1, 2, 3, 4), ma se ti aspetti che arrivi fino a 5 sbagli i conti. È il classico errore "off-by-one", cioè sbagliare di uno.

Un esempio scolastico: la somma dei voti

Mettiamo insieme tutto con un caso vero, di quelli che capitano davvero a scuola: calcolare la somma e la media dei voti di uno studente.

# I voti di uno studente
voti = [7, 8, 6, 9, 5]

# Sommo tutti i voti uno per uno
somma = 0
for voto in voti:
    somma = somma + voto    # aggiungo il voto corrente alla somma

# Calcolo la media
media = somma / len(voti)

print("Somma dei voti:", somma)   # 35
print("Media:", media)            # 7.0

Guarda cosa succede a ogni giro: la variabile somma parte da zero e, per ogni voto, gli si aggiunge il valore corrente. È il modo classico di "accumulare" un risultato dentro un ciclo. Questo schema, sommare gli elementi di un gruppo, lo ritroverai in decine di programmi diversi.

Quali errori si fanno con il ciclo for?

Da docente, gli inciampi più frequenti con il for sono sempre questi, e conoscerli ti evita ore di frustrazione:

In sintesi

Il ciclo for serve a ripetere istruzioni, scorrendo gli elementi di una lista o usando range() per un numero preciso di volte. Nasce dalla struttura iterativa che hai visto nel diagramma di flusso, e in Python si scrive in modo quasi naturale, "per ogni elemento, fai qualcosa". Ricorda l'indentazione e che range parte da zero. Una volta padroneggiato il for, il passo successivo è capire come funziona il while, l'altro tipo di ciclo che si usa quando non sai in anticipo quante volte ripetere.

Domande frequenti

Cos'è il ciclo for in Python? +

Il ciclo for è una struttura che ripete un blocco di istruzioni per ogni elemento di un insieme di dati, come una lista, oppure un numero preciso di volte usando range(). Invece di riscrivere la stessa riga molte volte, si dice a Python "per ogni elemento, fai questa operazione" e lui la esegue automaticamente su ciascuno. È uno degli strumenti più usati nella programmazione: scorrere una lista di voti, ripetere un calcolo, elaborare una serie di dati sono tutte operazioni che si fanno con un ciclo for. La sua forma in Python è molto leggibile e vicina al linguaggio naturale.

A cosa serve la funzione range in Python? +

La funzione range genera una sequenza di numeri e si usa con il ciclo for quando si vuole ripetere qualcosa un numero preciso di volte. Ad esempio, for i in range(5) ripete il blocco cinque volte. L'aspetto che confonde di più i principianti è che range(5) produce i numeri da 0 a 4, non da 1 a 5: parte da zero e l'ultimo valore è escluso. Sono comunque cinque numeri, ma bisogna ricordarsene per non sbagliare i conti. Si può anche specificare un inizio diverso, ad esempio range(1, 6) per avere i numeri da 1 a 5.

Perché l'indentazione è importante nel ciclo for? +

Perché in Python l'indentazione, cioè lo spostamento a destra delle righe (di solito quattro spazi), indica quali istruzioni stanno dentro il ciclo. A differenza di altri linguaggi che usano le parentesi graffe, Python usa proprio gli spazi per capire il blocco di codice da ripetere. Se l'indentazione è sbagliata, Python segnala un errore oppure esegue righe che pensavi fossero dentro il ciclo ma sono fuori, producendo risultati inattesi. Sbagliare l'indentazione è l'errore più comune di chi inizia, quindi vale la pena fare attenzione fin da subito a mantenerla coerente.

Qual è la differenza tra il ciclo for e il ciclo while? +

Il ciclo for si usa quando si sa su quali elementi o quante volte ripetere: scorrere una lista o ripetere un'operazione con range(). Il ciclo while, invece, ripete finché una condizione resta vera, anche senza sapere in anticipo quante volte accadrà, ad esempio "continua a chiedere la password finché non è corretta". In pratica il for è la scelta naturale quando il numero di ripetizioni è noto, il while quando dipende da una condizione che cambia durante l'esecuzione. Entrambi nascono dalla stessa struttura iterativa dei diagrammi di flusso e si possono spesso convertire l'uno nell'altro.

Come si calcola la somma di una lista con il for? +

Si crea una variabile che parte da zero e, dentro il ciclo for, le si aggiunge ogni elemento uno alla volta. Ad esempio, con i voti in una lista: si scrive somma = 0 prima del ciclo, poi for voto in voti: somma = somma + voto. A ogni giro la variabile somma accumula il valore corrente, e alla fine contiene il totale. Dividendo la somma per il numero di elementi, ottenuto con len(), si ricava la media. Questo schema dell'accumulatore, una variabile che cresce a ogni ripetizione, è uno dei più usati in programmazione e torna utile in moltissimi esercizi scolastici.

Esercitati sul ciclo for

Il for si impara scrivendolo. Nei corsi gratuiti trovi l'editor per provare il codice nel browser, e tanti esempi da modificare.

Vai ai corsi →