- 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 person00:00:00 :Quand on a des erreurs dans notre script, il existe plusieurs façons de déceler ces erreurs et de les résoudre,notamment avec la fonction print qui est généralement ce que les députants utilisent.
00:00:11 :On a ensuite la possibilité d'utiliser le logging qu'on appelle en français la journalisation.Logging qui est un module de Python qui permet de faire cette journalisation.
00:00:20 :Et on a également la possibilité de faire ce qu'on appelle du debug.Alors dans cette vidéo, on va voir dans quel cas utiliser le print, le logging ou le debug,les avantages et inconvénients de chacun et ainsi de savoir quelle façon de faire utiliser selon les cas de figure.
00:00:35 :Alors la première chose qu'on peut utiliser, c'est la fonction print.Donc la fonction print, c'est généralement ce que les députants utilisent.Elle nous permet d'afficher des informations à l'écran.
00:00:44 :Ça va nous permettre donc d'afficher par exemple la valeur d'une variable ou d'afficher une phrase,tout simplement par exemple si notre script passe à l'intérieur d'une structure conditionnelle.
00:00:54 :Donc ça permet de faire différents types de vérifications.L'avantage, c'est qu'on la connaît tous.La fonction print, c'est une des premières choses qu'on apprend en Python et c'est très facile à mettre en place.
00:01:04 :Il n'y a pas de module à importer.On met un print, on affiche ce qu'on veut et ça nous permet de très rapidement faire du debugsans même avoir besoin de maîtriser un outil de debug.
00:01:12 :Donc la fonction print, elle est pratique parce qu'elle est donc rapide à utiliser.C'est ce que j'utiliserai personnellement en premier recours,à moins bien sûr que vous ayez déjà un système de logging qui soit mis en place dans votre script.
00:01:23 :Dans ce cas-ci, vous pouvez directement utiliser ce système de logging.Mais si vous n'en avez pas, très rapidement vous pouvez utiliser cette fonction printpour afficher des informations et y voir un peu plus clair dans votre script.
00:01:35 :Cette fonction, elle n'a pas vocation à rester dans votre scriptpuisque le print, en fait, on n'a aucun contrôle dessus.A chaque fois, il va s'afficher et donc le print, c'est bien pour debugger rapidement.
00:01:45 :Mais c'est ça le problème, en fait, c'est qu'on va souvent avoir besoin de les enlever et de les remettre.Et donc on passe un peu notre temps à enlever et à rajouter des prints un peu partout dans notre code.
00:01:55 :Ça ne permet pas également de sauvegarder un fichier de log.Donc le print, c'est très pratique quand on est en train de coder,quand on veut afficher au moment où l'on code des informations.
00:02:04 :Mais on ne peut pas sauvegarder ces informations dans un fichier.Alors on pourrait le faire avec la fonction print.C'est possible de ne pas juste l'envoyer en affichage, mais de le sauvegarder quelque part.
00:02:11 :Mais ce n'est pas sa fonction principale.Et dans ce cas-ci, si ce qui vous intéresse, c'est vraiment de garder une tracede ce qui se passe à l'intérieur de votre script,et bien vous avez beaucoup plus intérêt à utiliser le logging.
00:02:22 :Donc la fonction print, ça ressemble à ça.Ici, on a un exemple très classique d'une fonction.Et on veut avoir quelques informations.On veut voir à l'intérieur de la fonction à quoi sont égales A et B.
00:02:31 :On veut voir si on passe bien dans notre structure conditionnelle.Donc très rapidement, on met des prints.On affiche A et B.On affiche une phrase à l'intérieur de la structure conditionnelle.
00:02:40 :Et comme ça, ça nous permet de tester notre scriptet de voir des informations que l'on n'aurait pas si on n'avait pas ces prints.Donc ça, c'est avec la fonction print.
00:02:48 :Ensuite, on a le logging, qu'on appelle en français donc la journalisation,et qui est également le nom d'un module qu'on peut utiliserpour avoir des fichiers de log, donc pour faire du logging avec Python.
00:02:58 :Alors c'est un petit peu plus long à mettre en place,mais généralement on le fait une fois et après c'est fini.Donc c'est le seul désavantage, je dirais, par rapport à la fonction print.
00:03:07 :Et comme je disais, si vraiment déjà dans votre script,vous avez ce module qui est intégré,et bien utilisez-le plutôt que la fonction print.Également, le logging, ça peut rester dans votre scriptparce qu'on a ce qu'on appelle des niveaux de log,donc les niveaux info, debug, erreur, critical, warning, etc.,
00:03:23 :qui vous permettent de laisser ces lignes à l'intérieur de votre scriptet en choisissant le niveau d'afficher plus ou moins d'informations.Donc d'afficher par exemple juste les informations,d'afficher le debug ou d'afficher les erreurs et les avertissements par exemple.
00:03:36 :Également, le gros avantage, c'est qu'on a la persistance des donnéescar on peut mettre toutes ces informations dans un fichier de log.Et l'importance de ça, c'est par exemple si vous avez un site web,vous n'êtes pas 24 heures sur 24 derrière votre écranà lancer le script et regarder ce qui se passe.
00:03:51 :Le site, il existe en tant que tel, il existe tout seul à côté de vous,et si jamais il y a des problèmes avec votre site,et bien il est très important de pouvoir aller voir ce qui s'est passé,donc dans des fichiers de log qui vont être sauvegardés sur votre serveur,
00:04:03 :et vous pourrez ainsi avoir un aperçu de ce qui s'est déroulé,de ce qui a pu causer des erreurs avec le debug,avec les erreurs, les warnings, etc.
00:04:11 :Donc c'est vraiment la grosse différence avec le print,mais c'est un petit peu plus long à mettre en place.Du coup, au début, il faut le faire une première fois,et après, une fois que c'est fait, on peut l'utiliser.
00:04:20 :Le logging, ça ressemble à quoi ?Vous voyez qu'on a déjà un peu plus de lignes de code,et là encore, c'est un loggeur très très très basique,mais vous voyez que là, on a un logging qui est mis en place,et après, ça ressemble pas mal à ce qu'on avait avec la fonction print.
00:04:34 :On a le logging.debug qui nous affiche la même chose qu'on avait précédemmentavec la fonction print, sauf que là, vous voyez qu'on a rajoutélogging.info, et donc en fonction du niveau qu'on met dans la variable level
00:04:44 :quand on crée notre loggeur, on va pouvoir afficher plus ou moins d'infos.On va pouvoir afficher juste l'info, juste le debug, etc.Donc comme vous voyez, un petit peu plus long à mettre en place,un peu plus de lignes à écrire, mais beaucoup plus robustes,et également la possibilité de sauvegarder dans un fichier de log.
00:04:59 :Ensuite, on a donc le debug.Le debug, c'est bien parce que ça permet de comprendredans le moindre détail ce qui se passe à l'intérieur de votre script.
00:05:06 :Ça va permettre de faire à peu près le même cheminque ce que fait l'interprèteur Python.On va pouvoir mettre ce qu'on appelle des points d'arrêt,vérifier ce qui se passe à différentes étapes de notre code,aller à l'intérieur des fonctions, à l'intérieur des fonctionsqui sont dans d'autres fonctions, etc.,
00:05:20 :et à chaque fois avoir l'analyse du contexte d'exécution.Donc ce que je dis par là, c'est qu'en fait, on ne va pas avoiruniquement les valeurs d'une variable ou d'une autrequ'on aurait mise dans un print, par exemple,mais on va pouvoir s'arrêter à chaque ligne,et à chaque ligne avoir un aperçu de ce à quoi correspondent
00:05:35 :les objets dans notre code.Comme ça, on n'a pas besoin d'y aller un peu à tâton,ce qu'on fait généralement avec le print,c'est-à-dire qu'avec un print, on va mettre un print,après on va se rendre compte qu'on n'a pas mis notre printdans une structure conditionnelle, mais qu'on aimerait bien voir
00:05:47 :si notre code passe dedans, donc on va rajouter un printet on va y aller un peu par essais-erreurs comme ça.Avec le debug, on n'a même pas besoin de penser à ça.
00:05:53 :On met juste un ou deux breakpoints,peut-être, dans notre script, si on sait vraimentà quel endroit on veut s'arrêter,mais même après, une fois qu'on a mis ces breakpoints,si vous voulez aller à la ligne d'aprèsou rentrer à l'intérieur d'une fonction sur une ligne précisetout en gardant l'aperçu global
00:06:07 :de ce qui se passe dans votre script,eh bien, le debug, c'est vraiment çaqu'il faut utiliser.Donc, si vous êtes à l'aise avec le debug, je dirais que c'est çaqu'il faut utiliser principalement avantla fonction print. Moi, ça m'arrive encore
00:06:19 :des fois de ne pas m'embêter avec le debug,de juste mettre un print vraiment quand je sais que c'est un petit scriptrapide et que je ne veux pas m'embêteravec des points d'arrêt et tout ça,mais si vous le maîtrisez, c'est quand mêmeun outil très très pratique.
00:06:31 :Après, ça dépend aussi comment vous le maîtrisezdans votre éditeur. Par exemple, moi, je sais que je le maîtrisetrès bien dans PyCharm, mais moins dansVisual Studio Code. Dans Visual Studio Code,
00:06:39 :en plus, généralement, j'ai des scripts un peu plus petits,donc souvent, dans Visual Studio Code, je ne vais pas m'embêter,je vais juste mettre des prints et je ne vais pas rentrer dans le debug.
00:06:45 :Par contre, avec PyCharm, vu que je le maîtrisesur le bout des doigts, directement, je ne m'embêtepas avec des prints et là, je passe directement en debug.
00:06:51 :Donc là encore, ça dépend vraiment de l'outil,du contexte, de votre script, etc.Le debug, ça ressemble à quoi ?Ça ressemble à ça, vous voyez que c'est un peu plus complexe à prime abord.
00:06:59 :On a ici un point d'arrêt,donc avec la ligne de la structure conditionnellesur lequel le script va s'arrêter.On a les outils qu'on peut utiliserpour avancer dans notre script,pour rentrer à l'intérieur des fonctions, pour voirun peu plus en détail chaque objet, etc.
00:07:13 :On a à gauche l'aperçu,donc ce que je disais avec le contexte, en fait,on a l'aperçu des variables dans l'espace local,dans l'espace global, on voit toutes les fonctions,tout ce qui est à l'intérieur de notre script,on y a accès, on le voit et on voit à quoi c'est égal.
00:07:25 :Donc, vraiment, on a beaucoup plus d'informationset ça permet, sans avoirbesoin de mettre des prints partout,de savoir ce qui se passe très précisémentdans notre script. Donc, pour finir,
00:07:35 :quand est-ce qu'on utilise l'un ou l'autre ?Moi, je dirais print ou debug en fonctionde la complexité. Si vous avez un petit scriptrapide et que c'est un éditeur que vous nemaîtrisez pas et que vous n'avez pas envie de vous embêteravec des processus de debug, vous pouvez
00:07:47 :très bien mettre un print, il ne faut pas en avoir honte,on fait tous ça, on met un petit print quelque part,on voit ce que ça donne. Après, vous pouvez
00:07:53 :utiliser le debug, du coup, si vous voulez aller un peuplus dans la complexité, si vous avez des choses qui sontun peu plus complexes à analyser.
00:07:59 :Et le logging, moi, je mettrais ça vraimenten place pour garder une trace principalement.Donc, si vous avez déjà, comme je disais,un logging dans votre script, et bienutilisez-le à la place de la fonction print.
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.