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