Come abbiamo visto in articoli precedenti, Python è oggi considerato uno dei linguaggi di programmazione più usati al mondo. Questo grazie specialmente alla sua duttilità in ambito sviluppo software. Poiché saper programmare in Python, apre le porte ad un sacco di opportunità lavorative stimolanti e coinvolgenti.
Quindi a cosa serve Python?
Il linguaggio di programmazione nato nel febbraio del 1991 ha tantissimi campi applicativi, come data science, machine learning, web development, computer vision, intelligenza artificiale, fondamenti di robotica, analisi e visualizzazione dei dati e la lista potrebbe continuare.
Per questo imparare Python potrebbe farti diventare uno sviluppatore a 360 gradi, lanciandoti in contesti che ad oggi sono molto gettonati nel mondo dell’informatica e dello sviluppo software.
Per programmare con Python è importante saper fare il debugging del nostro codice Python.
Il debug è l’attività di ricerca e correzione di errori nello script (o più semplicemente nel programma); a differenza della compilazione, il debug viene eseguito esclusivamente per trovare errori durante l’esecuzione di un programma, che può essere sia compilato che interpretato. Seguendo il flusso dello script in esecuzione, in ogni riga di codice vengono visualizzate in tempo reale le operazioni compiute dalle istruzioni registrate nelle variabili. Per non farlo manualmente, si utilizzano software predisposti, chiamati debugger.
Quando vogliamo imparare a programmare in Python dobbiamo anche imparare a fare il debug.
Il linguaggio di programmazione mette a disposizione un modulo, chiamato Python Debugger.
Per avviarlo all’interno del nostro codice Python basta eseguire due semplici comandi:
import pdb
Per importare la nostra libreria, poi, in seguito:
pdb.set_trace()
Per avviare il debug nella riga di codice che mi interessa.
Come funziona il Python Debbuger?
Quando il nostro interprete incontra la funzione set_trace() nel flusso del codice, sospende l’esecuzione e apre la console per il debugging.
Potremo interagire con questa console ed eseguire diversi comandi per gestire il debug dello script. Per vederli tutti ci basta inserire il comando “help” all’interno della console.
Vediamo un esempio pratico:
import pdb
for i in range(1, 10):
print(i)
if (i==5):
pdb.set_trace()
print("fine")
Il debugger si avvierà al quinto ciclo (i==5) e, se digito il comando list nella console del debugger visualizzeremo a che punto del programma si trova l’esecuzione.
2 -> for i in range(1, 10):
Ora se vogliamo conoscere il valore della variabile i ci basta digitarla all’interno della console. Mentre se invece vogliamo avanzare nell’esecuzione, ci basta utilizzare il comando next.
Questa è la procedura per interagire con il debugger e individuare anomalie nel proprio script in esecuzione. Vediamo quali sono i comandi più utilizzati nel Python Debugger e a cosa servono:
- Jump: imposta la prossima linea di codice da eseguire
- Source: cerca di ottenere il codice sorgente per l’oggetto dato e visualizzarlo. Utile per interagire con funzioni dichiarate altrove.
- Whatis: stampa il tipo dell’argomento presente nella riga in esecuzione.
- Display: mostra il valore dell’espressione, se è cambiato, ogni volta che l’esecuzione si ferma nel frame corrente.
- Continue: continua l’esecuzione del programma.
- Exit: esce dal debugger e interrompe l’esecuzione.
- Interact: a nostro parere il più utile e potente comando del pdb. Avvia un interprete interattivo il cui spazio dei nomi globale contiene tutti i nomi trovati nell’ambito corrente.
Questi sono solo alcuni dei comandi forniti dal Python Debugger, estremamente utile per individuare errori nel codice, specialmente se si ha a che fare con un progetto molto grande e magari non scritto da noi.
La potenza del programmare in Python risiede anche in queste funzionalità.
Avere a disposizione un modulo, importabile con un semplice comando, all’interno del codice stesso, senza dover ricorrere a tool esterni che facciano il debug, è un grande vantaggio.
Un’opzione può sempre ricadere nell’eseguire il debug “manualmente” armandosi di pazienza e inserendo di sana pianta dei breakpoint in cui, eseguendo il codice, possiamo vedere dove è presente il famigerato bug. Ma è molto dispendioso a livello di tempo.
Imparare Python è anche imparare a fare il debug, una tecnica utile e estremamente necessaria se si vuole diventare uno sviluppatore software.