Come trovare e correggere i bug
📅 6 giugno 2026 — di Alessandro Simone
Nessun programmatore, nemmeno il più esperto, scrive codice perfetto al primo colpo. Gli errori — chiamati bug — fanno parte del gioco. La differenza tra chi si blocca e chi va avanti sta nel saperli trovare e correggere: questa attività si chiama debug. In questa guida ti insegno un metodo per non andare più nel panico quando il codice non funziona.
Perché si chiamano "bug"?
Curiosità: il termine bug ("insetto" in inglese) nasce nel 1947, quando una falena rimase incastrata in un computer causando un malfunzionamento. Da allora "bug" indica un errore nel software e "debug" l'attività di rimuoverlo. Conoscere la storia rende l'argomento un po' più simpatico!
I tre tipi di errore
Per affrontare un bug, prima bisogna capire di che tipo è. Ne esistono tre famiglie:
- Errori di sintassi: hai scritto qualcosa che il linguaggio non capisce, ad esempio dimenticando i due punti. Il programma non parte nemmeno.
- Errori di runtime: il programma parte ma si blocca durante l'esecuzione, ad esempio dividendo per zero o accedendo a un elemento inesistente di una lista.
- Errori logici: il programma funziona e non dà errori, ma il risultato è sbagliato. Sono i più insidiosi perché non vengono segnalati.
Leggi il messaggio di errore (davvero!)
Il primo consiglio, banale ma fondamentale: leggi il messaggio di errore. Tanti studenti vanno subito nel panico senza leggerlo, eppure Python ti dice quasi sempre dov'è il problema e di che tipo è. Ad esempio:
Traceback (most recent call last):
File "prog.py", line 5, in <module>
print(numeri[10])
IndexError: list index out of range
Questo errore ti dice tre cose preziose: il file, la riga (5) e il tipo di problema (stai accedendo a un indice che non esiste). Metà del debug è già fatto solo leggendo.
La tecnica del print()
La strategia più semplice e potente per i principianti è inserire dei print() nel codice per "spiare" cosa succede. Vuoi sapere quanto vale una variabile a un certo punto? Stampala:
for i in range(5):
print("i vale:", i) # controllo il valore a ogni giro
risultato = i * 2
print("risultato:", risultato)
Vedendo i valori stampati passo passo, capisci esattamente dove il programma si comporta in modo diverso da quello che ti aspettavi. È come accendere una luce in una stanza buia.
Il metodo del "divide et impera"
Se il programma è lungo, non cercare il bug ovunque: dividilo a metà. Verifica se la prima parte funziona; se sì, il problema è nella seconda. Continua a dimezzare finché non isoli la riga incriminata. Questa strategia ti fa trovare l'errore molto più in fretta che leggendo tutto a caso.
Consigli pratici per non impazzire
- Fai una pausa: spesso il bug si trova dopo cinque minuti lontano dallo schermo;
- Spiega il codice ad alta voce, anche a un oggetto: la "tecnica della paperella di gomma" funziona davvero;
- Cambia una cosa alla volta: se modifichi tutto insieme, non saprai cosa ha risolto;
- Non incolpare subito il computer: nel 99% dei casi il bug è nel nostro codice, non in Python.
In sintesi
Il debug è l'arte di trovare e correggere gli errori, e si impara con il metodo: riconosci il tipo di bug, leggi sempre il messaggio di errore, usa i print per spiare le variabili e procedi dividendo il problema. Sbagliare non è un fallimento, è il modo in cui ogni programmatore impara. Più fai debug, più diventi bravo.
