Cicli in Python

Una guida completa ai cicli for, while, break, continue in Python, con esempi pratici e best practice.

Cosè un ciclo in Python

In Python, un ciclo (o iterazione) è un costrutto di programmazione che permette di eseguire un blocco di codice ripetutamente. I cicli sono fondamentali per automatizzare compiti ripetitivi, elaborare elenchi di dati, o continuare un'operazione finché una specifica condizione non si verifica.

Ciclo for

Il ciclo for in Python è il più versatile e pythonico. Si usa spesso con la costruzione range() o per iterare su sequenze come liste, tuple, stringhe.

# Ciclo for con range for i in range(5): print(i) # 0, 1, 2, 3, 4 # Iterazione su una lista frutta = ["mela", "banana", "arancia"] for frutto in frutta: print(f"Mi piace la {frutto}") 

Ciclo while

Il ciclo while esegue un blocco di codice finché una condizione rimane vera. È utile quando non si conosce il numero preciso di iterazioni.

conta = 0 while conta < 5: print(conta) conta += 1 # incrementa, altrimenti ciclo infinito! 

Break e Continue

Le istruzioni break e continue controllano il flusso dei cicli. break interrompe immediatamente il ciclo, mentre continue salta il resto del corpo del ciclo e passa all'iterazione successiva.

# Esempio con break for i in range(10): if i == 5: break # esce quando i raggiunge 5 print(i) # 0-4 # Esempio con continue for i in range(5): if i == 2: continue # salta i=2 print(i) # 0, 1, 3, 4 

Cicli annidati

I cicli possono essere annestati per gestire strutture bidimensionali come matrici o griglie.

# Matrice 3x3 matrice = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ] for riga in matrice: for elemento in riga: print(elemento, end=' ') print() 

Cicli su dizionari

Python permette di iterare su dizionari, generando le chiavi, i valori o le coppie chiave-valore.

punti = {"giocatore1": 150, "giocatore2": 200, "giocatore3": 175} for giocatore, score in punti.items(): print(f"{giocatore}: {score} punti") 

Nested Loop Pattern

Un pattern comune in programmazione è il "nested loop" o ciclo annidato, che si usa spesso per:


Ciclo infinito e sicurezza

È importante evitare i cicli infiniti. Sempre assicurarsi che le condizioni di terminazione siano soddisfatti:

# ✗ Errore: ciclo infinito x = 0 while True: print(x) # manca x += 1 # ✅ Corretto x = 0 while x < 100: print(x) x += 10 

Best Practice


Link utili


🔗 Resources and References

Libro Open Education Polito Wikipedia - Iterazione Python.org - Controllo Flusso MDN - Cicli di programma