Parlons d'un sujet très important si vous voulez être un grand programmeur, et cela s'appelle le
débogage, vous voyez que personne n'écrit des programmes parfaits, c'est honnêtement impossible.
Nous allons toujours faire des erreurs.
Et les programmes sont constamment améliorés.
Nous améliorons constamment notre code au fur et à mesure que nous trouvons de plus en plus d'erreurs, car les programmes sont pleins d'erreurs ou de ce que
nous appelons des bogues ou des exceptions au moment de l'exécution.
Lorsque le code est en cours d'exécution, vous voyez l'acte de trouver et de supprimer ces bogues ou erreurs de notre
code s'appelle le débogage.
Et une grande partie de notre temps en tant que programmeur est de déboguer du code, qu'il s'agisse de notre propre code ou du code d'autres personnes et de
déterminer, hé, comment se fait-il que cela ne fonctionne pas ?
Et les développeurs seniors sont vraiment très bons en débogage.
Parlons donc dans cette vidéo de certaines de mes recommandations pour le débogage et de certaines
bonnes pratiques.
Maintenant, gardez à l'esprit que vous obtenez un meilleur code de débogage au fur et à mesure que vous codez de plus en plus.
Donc, la meilleure chose que vous puissiez faire est de continuer à vous entraîner, de continuer à écrire du code Python.
Alors, quels sont mes conseils ?
Eh bien, tout d'abord, vous voulez absolument utiliser du LINTANG et ce qui limite ce dont nous avons parlé
juste lorsque nous avons configuré notre environnement de développement, la limitation nous permet de détecter pendant que nous codons certains problèmes avec notre
code.
Par exemple, si je fais NUM plus quatre ici et que j'obtiens un soulignement rouge et que vous voyez ici que les flocons de tarte linta remarque
avant même que j'exécute mon code, que, hé, il y a un numéro nommé non défini.
Lintang nous permet donc de trouver ces erreurs avant même d'exécuter notre code.
Et nous avons vu que nous pouvons utiliser des identifiants comme Pisar qui ont déjà intégré Lanting ou utiliser un texte sublime ou
un code de studio visuel et installer des packages et des extensions comme Pellant pour avoir réellement LINTANG dans notre code.
C'est un outil vraiment très important.
Ensuite, je recommande de toujours utiliser une sorte d'identifiant ou.
Ed, parce que ces éditeurs et identifiants, en particulier ceux qui sont spécifiques à Python, comme Pixar, ont
tous ces outils intégrés que nous pouvons utiliser, tels que le formatage automatique basé sur Pep Eight, rappelez-vous le
style guide de style officiel que la communauté Python a?
Il nous permet de détecter les erreurs dans notre code avec, disons, la mise en évidence et la mise en forme de notre code.
Il devient donc facile pour nous de détecter les erreurs avant même d'exécuter le code.
Enfin, vous voulez pouvoir apprendre à lire les erreurs.
Et c'est quelque chose que j'essaie de pratiquer avec vous car nous avons appris Python, par exemple, si
je fais pour plus, disons du charabia ici et je clique sur exécuter.
Tout de suite, je vois, hé, à la ligne six, il y a un air dans mon fichier DCPI principal, il y a un type air et
je vois ici que j'essaye de l'ajouter et une chaîne pour qu'on puisse lire les erreurs et comprendre ce qu'ils veulent dire.
Peut-être que je fais quelque chose comme ça si je clique sur exécuter.
J'obtiens une erreur de syntaxe.
Et une erreur de syntaxe que je connais signifie que, hé, l'interpréteur Python essaie de lire mon code, mais ce qu'elle vient
d'écrire n'est pas Python.
Je n'ai aucune idée de ce que vous faites.
Ici, je vois que c'est la fin de la ligne lors de l'analyse du littéral de la chaîne, alors j'essaie de lire cette chaîne et
tout d'un coup, le programme se termine comme si vous étiez censé terminer la chaîne, vous vous souvenez?
Donc, être capable de lire ces airs est vraiment, vraiment important, et nous en avons discuté certains dans ce cours,
certains des plus courants comme l'erreur de syntaxe, où vous écrivez simplement quelque chose que l'interpréteur
Python ne comprend pas.
Nous avons quelque chose comme une erreur, à droite, où nous utilisons une variable qui n'existe pas.
Donc Python ne comprend pas, hé, je n'ai aucune idée de quel nom est quelle est quelle est la valeur de nom ?
Nous avons des choses comme le type air, c'est-à-dire lorsque nous ne concordons pas avec le type de données et faisons, disons une chaîne plus quatre.
Nous avons des choses comme une valeur euh.
Nous avons des choses comme Kierra, où nous essayons d'accéder à une clé qui n'existe pas ou une erreur
d'attribut, où nous essayons d'accéder à la méthode de l'objet et cette méthode n'existe pas.
Maintenant, ces erreurs sont quelque chose que nous avons vu tout au long du cours, et nous allons en voir
quelques autres en dehors de cela.
Il y a environ 15 à 20 erreurs qui sont vraiment, vraiment courantes et qui apparaissent 90 pour cent du temps.
Et si vous vous en souvenez, vous pouvez toujours consulter la documentation Python pour en savoir plus, mais cela vient
juste avec la pratique.
Si vous voyez une erreur que vous n'avez jamais vue auparavant, je vous recommande d'aller à la documentation et de
la lire.
Une fois que vous le voyez, vous avez généralement tendance à vous souvenir de la prochaine fois.
Mais laissez-moi vous montrer ma façon préférée de déboguer du code.
Et cela s'appelle PDB ou Python Debugger, et PDB est un module intégré en Python ici même.
Encore une fois, rappelez-vous que notre module intégré fait partie de la bibliothèque standard fournie avec Python et PDB
est le débogueur Python pour les interprètes interactifs.
Et vous pouvez lire à ce sujet ici, mais laissez-moi vous montrer ce qu'il fait.
Vous voyez, PTB est extrêmement utile car il nous permet d'interagir avec le code, donc auparavant, lorsque
nous avions une fonction, disons que nous avons la fonction add et nous avons le numéro un, le numéro deux, puis cette
fonction renvoie simplement Namwon plus le numéro deux .
Maintenant, avant, si nous voulions, disons, déboguer ce code.
Et disons que nous ajoutons quatre plus du charabia et cela nous donne un air.
La première étape que je ferais serait probablement d'ajouter une impression ici pour que je puisse dire imprimer, hé, qu'est-ce qui
se passe?
Laissez-moi voir le numéro un et le numéro deux et ce que cela me donne.
Et print est un moyen vraiment très rapide et facile de déboguer votre code.
Je l'utilise tout le temps, mais PDB nous donne un petit coup de pouce supplémentaire.
Nous pouvons donc l'utiliser comme ceci, nous importons simplement PDB et au lieu d'utiliser quelque chose comme une fonction d'impression, nous
pouvons simplement dire laissez-moi l'espace extérieur ici, nous pouvons simplement dire PDB pour le débogueur Python, puis dire définir, tracer et
tracer, je dirait que c'est la méthode la plus utile que nous ayons sur cet objet PDB que nous
l'importions.
Vous voyez, quand je lance la méthode set.
Il me donne maintenant un débogueur python interactif dans lequel je peux maintenant taper des commandes ici et tester réellement sur mon
code.
Et voici la partie intéressante en ce moment dans ce PDB, je suis juste à l'intérieur de la ligne huit, donc mon code a essayé
de s'exécuter, mais il s'est ensuite arrêté dès qu'il a dit PDB, a déclaré Trace.
Et maintenant je suis dans ce monde et je peux tester ce qui se passe pour pouvoir dire, hé, Namwon, qu'est-ce que c'est
?
Eh bien, le numéro un est pour le numéro deux ?
Eh bien, le numéro deux est une chaîne.
Et je pourrais être comme, oh, j'essaie d'ajouter une chaîne et une fin à cela.
Cela ne fonctionne pas.
Je peux donc détecter les erreurs de cette façon aussi.
Maintenant, cette PDB interactive a en fait une tonne de choses utiles.
Donc, si je tape aide ici.
Vous voyez que j'ai des commandes que je peux utiliser dans le PDB, donc j'ai une tonne ici à laquelle j'ai accès, ce qui,
je suppose, va m'exciter hors de ce débogueur Python PDB, mais j'en ai aussi.
Des choses comme.
Disons liste, voyons quelle liste le fait lorsque je tape liste ici et maintenant, le site Web est
vraiment.
Ne me montre pas trop, mais j'espère que je peux toujours voir la liste.
Et je suppose qu'une sorte de sortie, je vois que j'obtiens une liste de mon code et OK, mais disons que je ne sais pas exactement
ce que fait la liste.
Bien.
PDB nous permet de taper help puis de lister.
Et quand nous faisons cela, cela nous donne en fait la documentation, tout comme nous l'avons ici.
Si nous allons, disons, liste.
Voyons voir, faisons une liste apathique ici, cela me donne la documentation juste ici, donc cela indique la source de la liste
pour le courant.
À droite.
Il répertorie donc simplement le code source que nous avons écrit.
OK, c'est parti.
Qu'y a-t-il d'autre?
Eh bien, nous avons aussi quelque chose comme Step ou S pour faire court et le step est vraiment, vraiment cool.
Utilisons en fait Clear pour amener cela vers le haut, donc je vais dire clear pour qu'il efface toutes les
pauses.
Faisons.
Agrandissons ça un peu pour que vous puissiez voir, c'est mieux, n'est-ce pas ?
Alors maintenant, je peux réellement faire quelque chose comme Step et Step va nous permettre d'aller à la ligne suivante.
Donc, encore une fois, si nous rendons cela un peu plus grand.
Step va dire, hé, allez à la ligne neuf, alors voyons ce qui se passe, je vais taper step.
Oh, et j'ai été poignardé deux fois, une étape nécessaire.
Et regarde ça, je passe à la ligne suivante dans mon manteau et ça me fait, hé, tu as une faute de frappe, l'erreur que nous
avons eue.
Ajoutons donc une autre ligne ici.
Disons que nous essayons d'ajouter quatre plus cinq ici ou quatre multiplier par cinq et de
l'affecter à une variable.
Si j'arrête ça et que je recommence.
Je suis maintenant à l'intérieur ici.
Si je tape T, j'obtiens un nom T n'est pas défini parce que, eh bien, je suis dans le code ici à la ligne huit, mais
nous avons encore une ligne rouge neuf.
Alors faisons un pas.
Et maintenant je suis de l'autre côté.
Donc, si je ne le fais pas maintenant, j'approche de 20, génial, alors je peux parcourir le code, ce qui est vraiment, vraiment
utile.
J'ai aussi des choses comme continuer, qui me permettent de continuer à travers le code jusqu'à ce que je
retourne quelque chose et je continue et quitte PDB et regarde ça.
Je reçois les urgences.
Exécutons cela à nouveau, une autre commande utile est a et A me donne en fait tous les arguments de la fonction actuelle dans
laquelle nous nous trouvons.
Alors regarde ça.
Je reçois tous les arguments, ce qui, encore une fois, est vraiment utile.
Il y a aussi la commande W.
Ce qui me montre le contexte de la ligne actuelle qu'il exécute.
Vous pouvez donc voir ici où nous sommes, nous sommes dans l'annonce.
Une fonction.
Nous l'avons appelé avec ces arguments et nous sommes maintenant sur le point d'exécuter cette ligne.
Et puis finalement, pendant que nous débattons de ça, d'accord, je pense que je vois enfin
que nous avons un air, nous aurions dû lui donner un numéro pour que je puisse maintenant sortir d'ici et simplement régler ça à cinq.
Alors maintenant, je peux simplement supprimer mon PDB et tout devrait bien fonctionner avec mon code.
Impressionnant.
Donc, PDB est génial pour parcourir votre code et déboguer et essayer différentes choses, cela nécessite
un peu de pratique, mais après une journée de jeu avec PDB, vous deviendrez vraiment, vraiment bon.
Donc, après cette vidéo, je vous recommande d'écrire PDB et j'espère que vous disposez d'un fichier Python suffisamment volumineux.
Ils peuvent simplement franchir le pas et expérimenter différentes commandes, en utilisant l'aide, en utilisant la liste pour voir ce
dont vous disposez.
Je veux en fait vous montrer une dernière chose, alors disons que nous revenons à notre code, notre PDB a dit Trace, je
clique sur exécuter.
Pourrais-je faire quelque chose comme ça où je remarque que je tape et que j'ai tout écrit, mon code fonctionne, mais pourrais-je changer le
numéro deux pour qu'il soit maintenant égal à du charabia?
Eh bien, voyons si je fais ensuite maintenant.
Et faisons ensuite pour exécuter cette dernière ligne.
J'y entre, donc je suis également capable de modifier des variables ici et d'écrire du code Python pour peut-être tester mes
fonctions.
Cela fonctionne maintenant.
Je peux tester, hé, que se passe-t-il si nous changeons cette variable en une autre valeur ?
Encore une fois, très, très utile.