[Python]Spyder, le super éditeur de code, et aide au debug Auteur Message Sekig
[Python]Spyder, le super éditeur de code, et aide au debug Auteur Message Sekigo Le Magnifique Sujet: Re: [Python]Spyder , le super éditeur de code, et aide au debug Lun 20 Fév 2012 - 16:19 Non, mais, ne vous cassez pas la tête sur ce point. Le python est recommandé suivant les académies, me semble-t-il. Puis, ça reste une recommandation, pas une obligation, tout comme le fait d'apprendre l'algo par l'informatique. Python est certainement utilisé parce que pas mal utilisé dans le milieu scientifique, y a un tas de bibliothèque SERIOUS BUSINESS en math, on peut expédier l'apprentissage des bases du langages en deux heures et c'est interprété pour voir le résultat en direct. Puis, c'est sous une licence très permissive, ça permet de ne pas s'embarrasser de contrat ou de licence à acheter. Mais vous n'apprendrez jamais à faire un jeu VIDÉO ou à fouiner en mémoire vive en cours de math, ça, c'est à peu près sur . On va pas devenir la soudaine patrie de milliers de Linus Torvald et John Romero. Sekigo Le Magnifique Sujet: Re: [Python]Spyder , le super éditeur de code, et aide au debug Mar 21 Fév 2012 - 18:43 Petit disclaimer : J'ai traduis cet article depuis le blog de pythonconquerstheuniverse. Il concerne l'utilisation du debugger Python. Il y aura une suite à cet article un peu plus tard, écrit par moi-même, pour expliquer comment un peu automatiser ce débuggage avec un IDE. Pourquoi utiliser un debugger alors qu'on peut utiliser l'instruction print ? Parce que, si le code commence à devenir gros, des print dans tout les sens, ça commence à devenir ingérable. Et surtout, avec un IDE, ça devient rudement pratique et intuitif. Et le debuggage permet d'aller fouiller les objets, les fonctions, d'essayer un tas de machins en temps réel, etc... J'ignore si ce tutoriel peut s'appliquer en partie à gdb, le debugger pour C. Je me souviens qu'on peut lancer Python à l'intérieur de celui-ci, mais je n'en sais pas plus. L'utilisation du debugger n'est pas réservé aux grands pros du python. Même si vous débutez en Python, vous pouvez vous en servir . Et l'utilisation du print n'est pas non plus à proscrire totalement, c'est plus pratique dans le cas de petit scripts. La traduction est "libérale". Je ne suis pas Google Translate ni professeur à la Sorbonne, j'y ai été à l'arrache. Débugger un programme en Python En tant que programmeur, une des premières choses dont vous auriez besoin pour un développement sérieux serait un debugger . Python incorpore déjà un debugger, qui est disponible comme module nommé pdb (pour Python DeBugger). Malheureusement, la plupart des discussions concernant pdb sont difficilement accessible pour les débutants — elles sont très laconique et de simples resucées de la description de pdb dans la documentation de Python. Donc, voici ma propre introduction à l'utilisation de pdb. Partons du principe que vous n'utilisez aucun IDE spécifique — vous codez avec un éditeur de texte des plus banals et vous lancez vos programmes Python depuis la ligne de commande. Mise en route — pdb.set_trace() Pour commencer, je vais vous montrer la manière la plus simple d'utiliser le debugger Python. Écrivons un petit programme, epdb1.py Code: # edpb1.py -- experimentation de pdb a = "aaa" b = "bbb" c = "ccc" final = a + b + c print(final) Insérons la déclaration suivante au début de ce programme. Cette déclaration importe le module de debuggage Python, pdb. Code: import pdb Maintenons, trouvons un endroit où nous aimerions inspecter le code, et insérons le code suivant. Code: pdb.set_trace() Désormais, le programme ressemble à cela : Code: # edpb1.py -- experimentation de pdb import pdb a = "aaa" pdb.set_trace() b = "bbb" c = "ccc" final = a + b + c print(final) [Python]Spyder, le super éditeur de code, et aide au debug - Page 2 http://cbna.forumactif.com/t10755p20-pythonspyder-le-super-editeur-d... 1 sur 11 16/05/2015 10:32 Lancez le code depuis la ligne de commande: Code: PROMPT> python epdb1.py Quand le programme rencontrera la ligne pdb.set_trace(), il va commencer l'inspection. Pour cela, il va : s'arrêter, 1. afficher la "déclaration courante" (en fait, la ligne qui va être exécuter à la prochaine étape), 2. attendre une entrée. 3. Nous pouvons voir le prompt pdb, qui ressemble à : Code: (Pdb) Exécutons la prochaine déclaration... avec n" (next) Dans le (Pdb) prompt, entrez la lettre n (pour "next") en minuscule, et appuyez sur Entrée. Cela va demander à pdb d’exécuter la déclaration courante. En répétant cette manipulation, vous finirez par quitter le programme, en retournant à la ligne de commande. Félicitation ! Vous avez réalisé votre premier debuggage ! Répéter la dernière commande de debuggage... avec Entrée Lancez de nouveau notre code, et entrez la lettre n dans le (Pdb) Prompt (comme vu plus haut) la première fois qu'il demande une instruction. Une fois cette instruction donnée et exécuté, appuyons UNIQUEMENT sur Entrée, sans rajouter le n minuscule. Le code va continuer comme si un n avait été inséré. Voilà donc le Truc #1 : Citation : Si vous pressez Entrée sans entrer quoi que ce soit d'autres, pdb re-exécutera la dernière commande entrée manuellement. Dans cet exemple, la dernière commande était n (next), donc vous pouvez la ré-exécuter tout au long du debuggage en appuyant uniquement sur Entrée. Tout quitter... avec q (quit) Le debugger peut effectuer toute une foule de choses, dont certaines qui peuvent paraître un poil obscur. Mais la chose la plus importante à apprendre pour le moment est de quitter le debugger ! C'est facile. Quand vous voyez le (Pdb) prompt, pressez q (pour "quit") et la touche Entrée. Pdb va se terminer et vous retournerez à la ligne de commande. Essayez, et observez comment cela fonctionne. Afficher la valeur des variables... avec p (print) La chose la plus utile que vous puissiez faire avec pdb est d'afficher la valeur d'une variable. Voyons voir comment faire. Lorsque vous êtes dans le (Pdb) prompt, entrez p (pour "print"), suivi du nom de la variable que vous souhaitez inspecter. Et, bien entendu, de valider la commande avec Entrée. Notez aussi que vous pouvez afficher plusieurs variables en même temps, en séparant leurs noms par une virgule (comme une instruction Python régulière "print"). Par exemple, vous pouvez afficher la valeur des variables a, b et c de cette manière : Code: (Pdb) p a, b, c Quand est-ce que pdb exécute une ligne ? Supposons que vous ayez progresser à travers le programme jusqu'à voir la ligne : Code: final = a + b + c et que vous demandiez la commande : Code: p final [Python]Spyder, le super éditeur de code, et aide au debug - Page 2 http://cbna.forumactif.com/t10755p20-pythonspyder-le-super-editeur-d... 2 sur 11 16/05/2015 10:32 Vous auriez alors l'exception NameError. Pourquoi ? Parce que, malgré que vous puissiez voir cette ligne, elle n'a pas encore été exécuté. Par conséquent, la variable final n'a pas encore été crée. Maintenant, entrez n et exécutez cette ligne de code. Réessayez la commande "p final". Cette fois, pdb va afficher la valeur de final, qui est "aaabbbccc". Couper le (Pdb) prompt... avec c (continue) Vous aurez probablement notez que la commande q coupe pdb d'une manière particulièrement crue — en fait, en tuant le programme. Si vous souhaitez simplement coupez le debuggage, mais laissez le programme s'exécuter normalement, entrez la commande c (pour "continue") dans le (Pdb) prompt. Cela forcera le programme a continué sans être mis en pause par le debugger. Cette commande peut être lancé au démarrage, ou si l'instruction pdb.set_trace() se trouve à l'intérieur d'une boucle, elle continuera sans pause jusqu'à la prochaine rencontre avec pdb.set_trace(), où (Pdb) prompt réapparaîtra. Voir où l'on se trouve... avec l (list) Lors d'un debuggage, il peut y avoir plein de chose inscrit à l'écran, et il peut être dur de savoir où l'on se trouve actuellement dans le code. La commande l (pour "list") est là pour cela. l affiche sur l'écran la zone de votre code source où vous vous situez dans l'exécution courante. Par défaut, elle liste 11 lignes de code. La ligne de code où vous vous situez très exactement est au centre de cette zone, avec une petite flèche "->" pointant sur elle. Pour résumer, voici une interaction typique avec pdb : La déclaration pdb.set_trace() est rencontrée, et vous commencez le debuggage avec le (Pdb) prompt. Vous pressez n et Entrée, pour passer à l'étape suivante du code Vous pressez Entrée pour une étape supplémentaire. Vous pressez Entrée pour une étape supplémentaire. Vous pressez Entrée pour une étape supplémentaire, etc... D'un coup, vous réalisez que vous êtes légèrement perdu. Vous n'êtes plus trop sûr où vous en êtes dans le code. Vous pressez l et appuyer sur Entrée. Cela liste la zone du programme où vous vous trouvez. Vous inspectez l'écran, retrouvez vos repères, et êtes prêt à "repartir". Vous pressez n et ensuite Entrée, pour passer à l'étape suivante. Vous pressez Entrée pour une étape supplémentaire. Vous pressez Entrée pour une étape supplémentaire. Vous pressez Entrée pour une uploads/S4/ debugger-avec-spyder.pdf
Documents similaires
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/SrUKuTf1OUqpovnsIsj1ME2NYmEr87ShmfylzZ0AV6JEutMroP2E1kZNz23H74Dn4Ril4oT76ObKwbLKkt0Bo3f5.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/gkHG7Tu7ObapFnD9k8UF5udWuM7f3nPi43iee88HEaaXiLzjFh3ClppmkL3j4fvhjDetMsHssKNkqNGNtjCRrt8n.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/lftTTlI7foScTNiNwbr2QfJcIPEhBKczGphUtH0buW1iVoLXLDTazHaPtUnxm9WFi8xl1cO72eSKDE0t59ecHo3F.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/r1CaDw5zGnfvTN2jLKAn0EKeCjW90NTPMbnIJWWm1W2mnqWEq7HMV11HWXJFAac5IkzdE8Nm9ZOw8ix1hWDVfxyd.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/aJmN7zcdOtbzLx9uqz6qB3oteILCnIYRMtmaD4Jnzsb7gOiaZ1Ewgb8ytpxRo3XeitN0MsYAQphuyrmZk9CP0Pr6.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/911n3wFM9VLDIzmdnOobvyll2mnlk4YT8RT374LtkXUrpqJ2h6KkcPe4YYTCRwCEdLlddkPZFGCxrXO4bpp1Tw9B.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/J7VsIc1h5zvm1EfwtPX6TB2isDetG0QJ1hsDDZHl4rUkfW8UAw0BH5PfLBlpNW6mnECHjHjzk62mlNpBQ2EIrFSN.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/Ir8mw0bCGwqD5vRFYCwVPN0K4G6OkwuVSXuSMx6QzjX7XO6Qy8UiqZvsBoAjjhS11AyeYEJgSstG1PZcNoOLDtQH.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/ZD9ScuE0myMfRMXPIUqnkBxADTlupY7W60WOucr50Qo79jB456NgjPZd4wHN2jYzUe4YH6mYtCllZSfDNibaJj3Q.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/zoBpto7mDFL1673YZuiWwof6MaeNkjtsKEKC8akYJqFeG9VyPhDV7lMo0Kp9oiposdIkZAAghlxwA1i7DfbfjNoX.png)
-
20
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Oct 08, 2022
- Catégorie Law / Droit
- Langue French
- Taille du fichier 0.6105MB