Parliamo di un argomento molto importante se vuoi essere un grande programmatore, e questo
si chiama debugging, vedi nessuno scrive programmi perfetti, è onestamente impossibile.
Faremo sempre errori.
E i programmi vengono costantemente migliorati.
Miglioriamo costantemente il nostro codice man mano che troviamo sempre più errori perché i programmi sono pieni di errori o quelli che
chiamiamo bug o eccezioni in fase di esecuzione.
Quando il codice è in esecuzione, l'atto di trovare e rimuovere questi bug o errori dal nostro codice
è chiamato debug.
E gran parte del nostro tempo come programmatori è eseguire il debug del codice, che sia il nostro codice o il codice di altre
persone e capire, ehi, come mai questo non funziona?
E gli sviluppatori senior sono davvero molto bravi a eseguire il debug.
Quindi parliamo in questo video di alcuni dei miei consigli per il debug e di quali sono alcune
buone pratiche.
Ora, tieni presente che ottieni un codice di debug migliore man mano che codifichi sempre di più.
Quindi la cosa migliore che puoi fare è continuare a esercitarti, continuare a scrivere codice Python.
Allora quali sono alcuni dei miei consigli?
Bene, in primo luogo, vuoi assolutamente usare un po' di LINTANG e ciò che sta limitando ciò di cui
abbiamo parlato proprio quando configuriamo il nostro ambiente di sviluppo, la limitazione ci consente di rilevare mentre codifichiamo alcuni problemi con il nostro
codice.
Ad esempio, se eseguo NUM più quattro qui e ottengo una sottolineatura rossa e vedi qui che la torta si sfalda linta nota prima
ancora che esegua il mio codice, che, ehi, c'è un numero con nome indefinito.
Quindi Lintang ci consente di trovare questi errori prima ancora di eseguire il nostro codice.
E abbiamo visto che possiamo usare ID come Pisar che ha Lanting già integrato o utilizzare un testo sublime o
codice di Visual Studio e installare pacchetti ed estensioni come Pellan per avere effettivamente LINTANG nel nostro codice.
Questo è uno strumento davvero, davvero importante.
Successivamente, consiglio di utilizzare sempre una sorta di ID o.
Ed, perché questi editor e ID, specialmente quelli specifici per Python, come Pixar, hanno tutti
questi strumenti incorporati da usare, come la formattazione automatica basata su Pep otto, ricorda la guida
di stile ufficiale che la comunità di Python ha?
Ci consente di rilevare errori nel nostro codice, ad esempio evidenziando e formattando il nostro codice.
Quindi diventa facile per noi rilevare eventuali errori prima ancora di eseguire il codice.
Infine, vuoi essere in grado di imparare a leggere gli errori.
E questo è qualcosa che cerco di praticare con te mentre abbiamo imparato Python, ad esempio,
se lo faccio per più, diciamo senza senso qui e clicco su Esegui.
Immediatamente, vedo, ehi, sulla riga sei, c'è un'aria nel mio file DCPI principale, c'è un tipo aria e vedo qui che sto
cercando di aggiungerlo e una stringa così siamo in grado di leggere gli errori e capire cosa significano.
Forse faccio qualcosa del genere se clicco su Esegui.
Ottengo un errore di sintassi.
E un errore di sintassi che conosco significa che, ehi, l'interprete Python sta cercando di leggere il mio codice, ma quello che ha
appena scritto non è Python.
Non ho idea di cosa stai facendo.
Qui vedo che è la fine della riga durante la scansione della stringa letterale, quindi sto provando a leggere
questa stringa e all'improvviso il programma finisce come dovresti terminare la stringa, ricordi?
Quindi essere in grado di leggere queste arie è davvero, davvero importante, e ne abbiamo discusso alcune in questo
corso, alcune delle più comuni come l'errore di sintassi, in cui stai semplicemente scrivendo qualcosa che
l'interprete Python non capisce.
Abbiamo qualcosa come errore, giusto, dove usiamo una variabile che non esiste.
Quindi Python non capisce, ehi, non ho idea di che nome sia qual è il valore di nome?
Abbiamo cose come il tipo aria, cioè quando non abbiniamo il tipo di dati e facciamo, diciamo una stringa più quattro.
Abbiamo cose come un valore ehm.
Abbiamo cose come Kierra, in cui stiamo cercando di accedere a una chiave che non esiste o attribuisce un
errore, in cui stiamo cercando di accedere al metodo dell'oggetto e quel metodo non esiste.
Ora, questi errori sono qualcosa che abbiamo visto durante il corso e ne vedremo altri
al di fuori di questo.
Ci sono circa 15-20 errori molto, molto comuni che si verificano il 90% delle volte.
E se ricordi, puoi sempre andare alla documentazione di Python per conoscerli, ma questo viene solo
con la pratica.
Se vedi un errore che non hai mai visto prima, ti consiglio di andare alla documentazione e
leggerlo.
Una volta che lo vedi, di solito tendi a ricordare quando si presenta dopo.
Ma lascia che ti mostri il mio modo preferito per eseguire il debug del codice.
E si chiama PDB o Python Debugger, e PDB è un modulo integrato in Python proprio qui.
Ancora una volta, ricorda, il nostro modulo integrato fa parte della libreria standard fornita con Python e PDB
è il debugger Python per interpreti interattivi.
E puoi leggerlo qui, ma lascia che ti mostri cosa fa.
Vedete, PTB è estremamente utile perché ci permette di interagire con il codice, quindi in precedenza,
quando avevamo una funzione, diciamo che abbiamo la funzione add e abbiamo il numero uno, il numero due, e quindi questa
funzione restituisce semplicemente Namwon più il numero due .
Ora, prima, se volessimo, diciamo, eseguire il debug di questo codice.
E diciamo che stiamo aggiungendo quattro più un po' di incomprensioni e ci dà un'aria.
Il primo passo che farei è molto probabilmente aggiungere una stampa qui, così potrei dire stampa, ehi, cosa
sta succedendo?
Fammi vedere il numero uno e il numero due e cosa mi sta dando.
E la stampa è un modo davvero, molto veloce e semplice per eseguire il debug del codice.
Lo uso sempre, ma PDB ci dà una piccola spinta in più.
Quindi possiamo usarlo in questo modo, importiamo semplicemente PDB e invece di usare qualcosa come una funzione di stampa, possiamo
semplicemente dire lasciami lo spazio qui dentro, possiamo semplicemente dire PDB per il debugger Python e poi dire set, trace
e trace, io direi che è il metodo più utile che abbiamo su questo oggetto PDB che lo
importiamo.
Vedi, quando eseguo il metodo set.
Ora mi dà un debugger Python interattivo che ora posso digitare i comandi qui e testare effettivamente sul mio
codice.
Ed ecco la parte interessante in questo momento in questo PDB, sono proprio all'interno della riga otto, quindi il mio codice ha provato a essere
eseguito, ma poi si è fermato non appena ha detto PDB, ha detto Trace.
E ora sono in questo mondo e posso testare cosa sta succedendo così posso davvero dire, ehi, Namwon, che
cos'è?
Bene, il numero uno è per il numero due?
Bene, il numero due è una stringa.
E potrei essere tipo, oh, sto cercando di aggiungere una stringa e una fine a questo.
Questo non funziona.
Quindi posso rilevare gli errori anche in questo modo.
Ora, questo PDB interattivo ha davvero un sacco di cose utili.
Quindi se scrivo aiuto qui.
Vedete che ho comandi che posso usare nel PDB, quindi ho un sacco di cose a cui ho accesso, cosa che
presumo mi entusiasmerà da questo debugger Python PDB, ma ce l'ho anche.
Cose come.
Diciamo elenco, vediamo cosa fa l'elenco quando digito elenco qui e in questo momento, il sito web è
davvero.
Non mi mostra troppo, ma spero che possa ancora vedere l'elenco.
E immagino una sorta di output, vedo che ottengo un elenco del mio codice e OK, ma diciamo che non so
esattamente cosa fa l'elenco.
Bene.
PDB ci permette di digitare help e poi list.
E quando lo facciamo, in realtà ci fornisce la documentazione, proprio come abbiamo qui.
Se andiamo, diciamo, alla lista.
Vediamo, facciamo una lista svogliata proprio qui, mi dà la documentazione proprio qui, quindi dice list source per
la corrente.
Destra.
Quindi elenca solo il codice sorgente che abbiamo scritto.
OK, va bene.
Cosa altro c'è?
Bene, abbiamo anche qualcosa come Step o S in breve e step è davvero, davvero fantastico.
In realtà usiamo Clear per portarlo in alto, quindi dirò clear in modo che cancelli tutte le
interruzioni.
Facciamo.
Rendiamolo un po' più grande così puoi vedere che ci sei, è meglio, giusto?
Quindi ora posso effettivamente fare qualcosa come Step and Step ci permetterà di passare alla riga successiva.
Quindi, di nuovo, se lo rendiamo un po' più grande.
Step dirà, ehi, vai alla riga nove, quindi vediamo cosa succede, digiterò il passaggio.
Oh, e sono stato accoltellato due volte, un passaggio necessario.
E guarda questo, vado alla riga successiva nel mio cappotto e mi viene, ehi, hai un errore di battitura, l'errore che
abbiamo ottenuto.
Quindi aggiungiamo un'altra riga qui.
Diciamo che stiamo cercando di aggiungere quattro più cinque qui o quattro moltiplicare per cinque e
assegnarlo a una variabile.
Se lo fermo e lo eseguo di nuovo.
Ora sono qui dentro.
Se digito T, ottengo un nome T non definito perché, beh, sono all'interno del codice qui sulla riga otto, ma abbiamo
ancora una riga rossa nove.
Quindi facciamo un passo.
E ora sono dalla parte successiva.
Quindi se non lo faccio ora mi avvicino a 20, fantastico, quindi passo passo passo attraverso il codice, che è davvero, davvero
utile.
Ho anche cose come continue, che mi consente di continuare attraverso il codice fino a quando non
restituisco qualcosa e continuo ed esco da PDB e guardo questo.
Ho il pronto soccorso.
Eseguiamolo di nuovo, un altro comando utile è a e A in realtà mi fornisce tutti gli argomenti della funzione corrente in
cui ci troviamo.
Quindi guarda quello.
Ricevo tutti gli argomenti, il che, ancora una volta, è davvero utile.
C'è anche il comando W.
Il che mi mostra il contesto della riga corrente che sta eseguendo.
Quindi puoi vedere qui dove siamo, siamo nell'annuncio.
Funzione.
L'abbiamo chiamato con questi argomenti e ora stiamo per eseguire questa linea.
E poi finalmente, mentre ne stiamo discutendo, va bene, penso di aver finalmente
capito che abbiamo un'aria, avremmo dovuto dargli un numero così ora posso uscire da qui e aggiustarlo semplicemente a cinque.
Quindi ora posso semplicemente rimuovere il mio PDB e tutto dovrebbe funzionare correttamente con il mio codice.
Stupendo.
Quindi PDB è fantastico per passare attraverso il codice, eseguire il debug e provare cose diverse,
richiede un po' di pratica, ma dopo una giornata passata a giocare con PDB, diventerai davvero molto bravo.
Quindi, dopo questo video, ti consiglio di scrivere PDB e si spera che tu abbia un file Python abbastanza grande.
Possono semplicemente scavalcare e sperimentare diversi comandi, usando l'aiuto, usando l'elenco per vedere cosa hai
a disposizione.
In realtà voglio mostrarti un'ultima cosa, quindi diciamo che torniamo al nostro codice, il nostro PDB ha detto Trace, faccio clic
su Esegui.
Potrei fare qualcosa del genere in cui noto che scrivo e ho tutto scritto, il mio codice funziona, ma potrei cambiare il numero due in
modo che ora sia uguale a un po' di incomprensioni?
Bene, vediamo se lo faccio adesso.
E facciamo il prossimo per eseguire questa riga finale.
Ci entro, quindi sono anche in grado di cambiare le variabili qui e scrivere codice Python per forse testare le mie
funzioni.
Questo ora funziona.
Posso provare, ehi, cosa succede se cambiamo questa variabile con un altro valore?
Ancora una volta, molto, molto utile.