- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compte personlive_helpToutes les questions
Bruno
9 février 2024 - 09 février 2024 à 18:31
checkConversation résolue
8 réponses
Debug avec VSC
Bonjour, dans votre formation vous présenter un debog avec Thonny auriez vous un lien qui puisse m'expliquer comment fonctionne le déboggage avec VScode ? Merci
SHABAZZ
14 août 2023 - 14 août 2023 à 18:16
checkConversation résolue
1 réponse
debogage dans VSC
bonjour, je suis dans la partie debogage et erreur.Je n'arrive pas a lire le cours "débogage dans visual studio code.J'aimerais savoir si cette partie de cours viendra par la suite …
00:00:00 :Pour vous montrer à quoi peut ressembler un debug dans la pratique,je vais utiliser un programme qui s'appelle Tony,que vous pouvez installer sur Windows, Mac et Linux,qui est un interpréteur Python très pratique,car il contient tout ce qu'il vous faut pour faire du debug.
00:00:15 :Il ne pèse quasiment rien et il vous permet d'exécuter des scripts Python.Dans Tony, j'ai donc créé un programme très simplequi va nous permettre de passer en revue toutes les optionsque vous retrouverez généralement dans n'importe quel éditeur de texteou environnement de développement pour faire du debug.
00:00:30 :Donc j'ai ici une fonction add qui me permet tout simplement d'additionner deux nombresavec des paramètres ici donc a et b que je retourne avec l'opération a plus b.
00:00:39 :J'ai ensuite la fonction input qui me permet de demander deux nombres à l'utilisateur.J'utilise ensuite cette fonction avec les deux nombres entrés par l'utilisateuret j'affiche fin du script.
00:00:48 :Donc là, actuellement, le problème de ce script, si je le lance,c'est qu'on ne fait aucune conversion de la chaîne de caractère en nombrepuisque la fonction input va toujours nous retourner une chaîne de caractère.
00:00:58 :Donc si je fais 5 plus 4, on aura 54 et non pas 9.Donc si on voulait débugger ce script, on pourrait passer par le débuggeur de Tony.
00:01:07 :Donc dans Tony, le débuggeur, on le lance en cliquant sur l'icône ici à côté du bouton play.Vous voyez qu'avec le bouton play, là, on a juste le script qui s'exécute sans aucune interruption.
00:01:17 :On a à la fin de l'exécution du script les variables que l'on peut regarder ici.Donc on voit ici qu'on a les variables que l'on voit ici.
00:01:23 :Donc on voit qu'on a plusieurs objets qui sont définis dans l'espace global de notre script.On a la fonction add, bien entendu, et ensuite les deux nombres,donc nombre 1 et nombre 02.
00:01:32 :Et on a ici les guillemets qui nous indiquent bien qu'il s'agit de chaîne de caractère.Je peux cliquer dessus.Donc ça, ça va être disponible là encore dans la plupart des éditeurs.
00:01:40 :Vous allez pouvoir inspecter ce qui se trouve à l'intérieur de votre script,que ce soit lorsque vous exécutez votre script directement ou lors d'un débug.
00:01:48 :Et on voit ici qu'on a bien un objet de type str, donc chaîne de caractère.On voit également dans Tony tous les attributs que l'on peut utiliser sur cet objet.
00:01:56 :Et on a la valeur qui est affichée ici.Et on voit avec les guillemets qu'il s'agit bien d'une chaîne de caractère.Donc ça, c'est possible même sans passer par le débug à l'intérieur de Tony.
00:02:04 :Mais avec le débug, on va pouvoir mettre ce qu'on appelle donc des points d'arrêt.Pour mettre un point d'arrêt, on double clique dans la marge,là où on veut mettre un point d'arrêt.
00:02:11 :Et ça va mettre un point rouge à la ligne où on veut s'arrêter.Donc pour lancer le script en mode débug, on clique ici.Et vous allez voir que cette fois-ci, le script va s'arrêter avant d'exécuter la ligne où j'ai mis mon point d'arrêt.
00:02:22 :Donc on me demande d'entrer un premier nombre.Je vais rentrer le nombre 5, le nombre 4 pour le deuxième.Et là, vous voyez que mon script s'arrête.
00:02:29 :Donc on ne va pas plus loin.On s'arrête à cette ligne ici.La ligne sur laquelle on s'est arrêté est mise en surbrillance.Et on a ensuite le choix de faire différentes choses.
00:02:39 :On voit à droite là encore nos variables qui sont définies.Mais on peut aller un peu plus loin.Les options qu'on a, c'est les 4 ici qui sont à côté du bouton de débug.
00:02:48 :Donc là encore, c'est des options que vous retrouverez dans la plupart des éditeurs de texte et environnement de développement.La première option qu'on peut utiliser, c'est tout simplement Resume,qui va en fait reprendre l'exécution de notre script jusqu'au prochain point d'arrêt.
00:03:00 :Donc là, dans ce cas-ci, on n'a pas d'autre point d'arrêt.On a juste mis un point d'arrêt à la ligne 7.Donc si je clique sur Resume, on va continuer l'exécution du script à la ligne où on s'est arrêté.
00:03:09 :Donc on va exécuter le print add n°1, n°2.Et on va continuer avec le print fin du script sans s'arrêter.Donc si je fais ça, vous allez voir qu'on va afficher 54.
00:03:18 :On va afficher fin du script et on revient ici au niveau du shell.Donc le script s'est terminé puisqu'on n'avait pas d'autre point d'arrêt.Si je mets un autre point d'arrêt par contre à la ligne 8 et que je relance le script en mode debug,vous allez voir que cette fois-ci, donc si je rentre 5 et 4 encore une fois, on s'arrête ici.
00:03:33 :Sauf que là, si je fais Resume de nouveau, on va s'arrêter au prochain point de debug.Donc Resume, ça permet de reprendre l'exécution du script jusqu'au prochain point d'arrêt.
00:03:41 :Et s'il n'y a pas de point d'arrêt, eh bien on s'en va jusqu'à la fin du script.Donc je vais enlever ce deuxième point d'arrêt que j'avais mis.
00:03:47 :Je vais cliquer sur Resume pour terminer le script.Et on va voir cette fois-ci les autres options qui sont à notre disposition.Donc la deuxième option qu'on utilise très souvent, c'est cette option qui s'appelle Step Over.
00:03:56 :Cette option, elle va en fait continuer à la prochaine ligne.Donc ça va avoir le même comportement, si vous voulez, que ce que fait vraiment l'interprèteur Python.
00:04:03 :Python, vous le savez, c'est un langage interprété.Donc quand on lance un interprèteur Python, il va exécuter notre script ligne par ligne.Et donc là, avec le point d'arrêt, ce que ça nous permet de faire, c'est d'arrêter l'exécution à un certain endroit.
00:04:15 :Et avec le Step Over, ça va nous permettre de reprendre l'exécution, mais ligne par ligne.Donc si je clique sur Step Over, même si je n'ai pas un point d'arrêt à la ligne 8,il va continuer avec l'exécution de la ligne actuelle, donc la ligne 7, et il va s'arrêter à la ligne 8.
00:04:28 :Donc on arrive à la ligne 8, vous voyez qu'elle est mise en surbrillance ici.On a bien 54 qui s'est affichée, donc la ligne au-dessus, la ligne 7, a bien été exécutée.
00:04:36 :On a affiché le résultat de l'opération.Et ensuite, on s'est arrêté à cette ligne, donc la ligne 8, puisque la fin du script n'est pas affichée.
00:04:54 :Donc vraiment, Step Over, ça permet d'aller pas à pas, donc ligne par ligne, dans notre script, après le point d'arrêt où on était.Si je mets mon point d'arrêt ici, vous allez voir que si je relance le script en mode Debug, on s'arrête à cette ligne ici,donc je peux continuer.
00:05:06 :Si je fais un Resume, je vais continuer avec l'entièreté du script, et je ne vais pas m'arrêter à chaque ligne.Mais si je fais un Step Over, on va continuer avec la ligne actuelle.
00:05:14 :Je vais entrer 5, on va ensuite s'arrêter à la ligne d'après, je vais refaire un Step Over,et là, vous voyez qu'on peut y aller comme ça, ligne par ligne, comme si on était l'interprèteur Python.
00:05:23 :Donc voilà, et jusqu'à la fin du script.La dernière option qu'on a, c'est l'option Step Into, donc cette option ici, qui va nous permettre de rentrer à l'intérieur d'une ligne.
00:05:32 :Donc si je remets mon point d'arrêt ici, et que je me remets en mode Debug, je vais rentrer un premier nombre, un deuxième nombre.Là, on s'arrête ici, donc si je fais un Step Over, on va exécuter la ligne au complet, mais ce que je peux faire à la place,
00:05:44 :c'est Step Into, et là, vous allez voir qu'on va rentrer petit à petit dans tous les éléments qui composent cette ligne de code.Donc si je fais Step Into une première fois, vous voyez qu'on rentre dans la ligne.
00:05:53 :On va ensuite rentrer à l'intérieur de ce qui se trouve dans le print, donc la fonction Add,et on va continuer comme ça sur chaque élément, et Tony va nous afficher en plus directement l'élément qui est concerné.
00:06:03 :Donc là, on avait nombre 0,1, et nombre 0,1, on avait rentré 5, donc ça va nous afficher en fait que ce nombre 0,1,Python, cette fois, il va le comprendre comme la chaîne de caractère 5.
00:06:12 :Il va faire pareil avec nombre 2, et maintenant qu'on a nos deux arguments qui sont définis et qui sont prêts à être envoyés à la fonction,quand je refais un Step Into, on va exécuter cette fonction avec les deux arguments,donc nombre 0,1 et nombre 0,2 qui sont égales à 5 et 4, et cette fois-ci, je vais avoir encore un autre truc assez intéressant avec Tony,
00:06:29 :c'est qu'il va m'ouvrir en fait une autre fenêtre pour m'afficher le contenu de la fonction.Donc là, on voit qu'on est rentré dans la fonction, et on s'arrête à la ligne Return, puisqu'il n'y a que cette ligne dans la fonction,donc on va sur la ligne Return, et là, je peux refaire encore une fois un Step Into,
00:06:43 :donc avec le bouton ici, je clique, et là, on rentre encore une fois à l'intérieur de cette ligne.Donc je pourrais faire un Step Over, si j'avais fait un Step Over, on aurait exécuté la ligne au complet,donc on aurait fait le Return de A plus B, là, en faisant le Step Into, on va rentrer à l'intérieur de cette expression,
00:06:57 :donc A plus B, et si je continue comme ça, vous voyez qu'on va là encore aller vraiment dans le détail.On va voir le A qui est remplacé par 5, le B qui est remplacé par 4, et ensuite l'addition de ces deux nombres,qui font donc 54 dans ce cas-ci, puisqu'il s'agit de deux chaînes de caractère,
00:07:10 :et là, ça nous permet vraiment de voir très concrètement l'erreur qu'on a dans ce cas-ci avec ce script,puisqu'on a bien deux chaînes de caractère qui sont additionnées l'une avec l'autre, ce qui nous donne donc 54 au lieu de 9.
00:07:20 :Donc vous voyez que Step Into, ça permet vraiment d'aller dans le détail.On a également Step Out qui est juste après, donc c'est le bouton ici, Step Out, tout simplement,c'est l'opposé en fait de Step Into, ça va nous permettre de sortir d'un bloc.
00:07:31 :Donc là, je suis à l'intérieur de mon bloc, là, dans ce cas-ci, vu que j'ai terminé tout ce qui était à l'intérieur du bloc,si je faisais Step Into, et bien ça ressortirait de ce bloc de toute façon,puisque j'ai terminé avec l'exécution de cette fonction, mais si jamais j'étais rendu au niveau du A plus B,
00:07:46 :comme on était tout à l'heure, et que je fais un Step Out, et bien directement, en fait, je ressortirais du bloc où je suis.Donc là, si je fais un Step Out, on revient à ce niveau ici, et là, je peux tout simplement résumer, par exemple,l'exécution de mon script avec ce bouton pour terminer le script.
00:07:59 :Donc on arrive avec le résultat qui est affiché et fin du script ici.Donc voilà les quatre options qu'on a. Vous voyez qu'on peut vraiment aller dans le détail avec Step Into.
00:08:07 :Step Into, ça va vraiment rentrer au plus profond de votre code.C'est-à-dire que même si dans la fonction Add, ici, on avait une autre fonction qui était appelée,avec Step Into, on rentrerait dans cette autre fonction.
Ce n'est pas fini...
✋
Tu as complété % du parcours 🔥
Termine l'intégralité de la formation pour pouvoir débloquer ton attestation de réussite.