Session du 02 mai 2024 à 21h00
TOSA & Certifications
Fichiers & Système
Librairie Standard & Modules
Deviens membre Premium magic_button
Cette session de mentorat est réservée aux membres Premium. Rejoignez-nous pour accéder à toutes les rediffusions des sessions de mentorat !
Premium
- check +100h de formations
- check +180 exercices de code
- check +100h de mentorats en rediffusion
- check 20 projets
- check Mentorats groupés hebdomadaires
- check Support individuel avec nos mentors
Mentorat TOSA + Premium
Cette semaine on va réviser les modules de la librairie standard, notamment les modules datetime, json et random ainsi que la lecture et l'écriture de fichiers sur le disque.
00:00:00 :Je coupe votre micro pour qu'il n'y ait pas de bruit de fond.Ok, et avant que j'oublie, je vais attendre un petit peu, je ne vais pas oublier cettefois-ci la feuille de présence, alors ça, ça sera juste pour ceux qui sont sur le programmeToza.
00:00:23 :J'avais oublié la dernière fois, je vais vous mettre le lien une fois que tout le mondesera arrivé, je vais attendre encore un petit peu.
00:00:29 :Salut Simon, salut Mathieu, alors j'ai affiché ma cam, allez ce soir on va mettre un petittruc zen, tiens ça c'est pas mal.Ah on a aussi, ouais on a des gens qui n'étaient pas là la semaine dernière pour le programmeToza là, je vois, donc bienvenue à ceux qui sont là pour la première fois pour le
00:01:12 :Toza.Donc, on est 14, je vais attendre encore un tout petit peu et on va commencer, donc cesoir, je vérifie que j'ai bien relancé l'enregistrement, oui c'est bon, bonsoir tout le monde, ok jepense que ça devrait être bon, non il y a encore des gens qui arrivent.
00:01:40 :Donc ce soir, je vais vous partager mon écran, je vais vous le mettre de l'autre côté,et je vous partage tout ça, est-ce que vous m'entendez bien, j'ai le micro un petit peuloin là, ouais c'est bon, c'est bon parfait, ok, donc on est presque 20, grosse sessionce soir.
00:02:08 :Donc je vais commencer, je vais vous mettre dans le chat la feuille de présence, justepour ceux du coup qui sont sur le programme Toza, si vous êtes juste sur la formulepremium, ne prenez pas ça en compte.
00:02:21 :Bon après au pire si vous la remplissez par erreur, si vous n'êtes pas dans le Toza,c'est pas grave, je ferai le tri, mais voilà, je préfère le dire, donc je vous ai misbien, si vous pouvez ceux qui sont dans le Toza, comme la première fois, j'avais oublié
00:02:39 :la dernière fois, mais de juste remplir la feuille de présence que je vous ai mise dansle chat, et ok il y a encore des gens qui arrivent, ok donc c'est bon vous voyez monécran normalement, donc feuille de présence, je voulais vous dire aussi, je sais pas si
00:02:57 :vous l'avez tous vu, là encore pour ceux qui sont sur le Toza, qu'on vous a mis desscreenshots de toutes vos réponses qui étaient fausses, dans ceux qui ont passé l'évaluation,en fait vous l'avez toutes passées là maintenant, il en restait encore deux ou trois qui n'avaientpas terminé, donc on vous a mis, c'était quelque chose qui nous a été beaucoup demandé,
00:03:17 :effectivement c'est bien pour revoir les éléments, les questions sur lesquelles vous avez eufaux, donc on vous a fait des screenshots, c'était le plus simple, donc vous avez normalementreçu tous un mail d'invitation au dossier, donc on a fait un dossier pour chaque personne,avec les résultats pour l'évaluation, et si on a d'autres ressources à vous partager
00:03:37 :aussi, on passera par ce dossier, comme peut-être certains se souviennent d'ailleurs qu'onfaisait un moment, quand on faisait la formule CPF il y a un petit moment, je pense que Gapt'avais eu ça, on avait des dossiers comme ça aussi pour les étudiants, aussi j'enprofite pour vous dire, on a créé, on continue de créer, je ne sais pas si Kevin est là
00:04:01 :ce soir, là Kevin qui m'aide avec de la création de contenu en ce moment et gestionetc, on a créé donc des nouveaux glossaires pour des questions qu'on a vu revenir aussipas mal dans le Toza, sur les classes abstraites et Idol, alors Idol c'est un tout petit glossaire
00:04:19 :c'est juste que j'ai vu qu'il y a quelques questions de culture générale dans le Toza,sur notamment, je pense que vous avez été plusieurs à l'avoir vu, des questions surles nouveautés de Python, ça c'est un truc qu'il faudra revoir, on le verra aussi surpar exemple les versions 3.9 qui ont amené des choses assez intéressantes comme l'opérateur
00:04:38 :walrus, les deux points égales comme ça, donc ça c'est des petits trucs un peu deculture générale important, et Idol en fait partie donc je vous laisserai aller voirça si ça vous intéresse, donc on les a ajouté, ça et les classes abstraites aussi,les classes abstraites on y reviendra plus tard, c'est un sujet qui est quand même un
00:04:54 :petit peu plus avancé, donc on a le temps de voir venir mais on y reviendra et pourl'instant on vous a fait le glossaire si vous voulez vous avancer un petit peu là dessus.
00:05:01 :Et donc ce soir on va voir, comme je l'ai mis ici, on va surtout passer en revue deslibrairies standards, donc DateTime, Random et JSON, c'est pas des trucs très avancésmais en fait je vais essayer de vous montrer des petits moyens mnémotechniques, des trucsqui sont justement, qu'on voit peut-être moins souvent, des choses aussi que j'ai
00:05:23 :vu passer dans le Toza et qui sont intéressants à voir pour ceux qui font partie de ce programme.Donc je vais amener mon PyCharm, et on va voir aussi tout ce qui est un peu gestionde fichiers, j'ai vu pas mal de questions là dessus cette semaine, et c'est des questions
00:05:40 :qui reviennent souvent en général, peu importe si vous faites le Toza ou non, surles fichiers, notamment le module JSON, le format JSON, qui donc en Python est similaireà un dictionnaire, et comment on va justement récupérer des données, ajouter des donnéesdans un JSON qui est différent justement d'un fichier normal, un fichier texte par
00:06:01 :exemple, dans lequel on pourrait écrire. Donc il y a pas mal de petits trucs commeça à voir. Pour l'instant on va commencer avec les dates, est-ce qu'il y a des questions
00:06:08 :jusque là, est-ce que ça vous va ? Là c'est bon, ça s'est calmé sur les entrées.Et pour ceux qui font le Toza, juste préciser que vous pouvez, on le verra aussi un petitpeu plus tard sur la plateforme, vous avez le moyen de faire des prints, notamment d'utiliser
00:06:30 :DIR et HELP pour afficher les attributs d'un objet ou les LED sur des modules, sur desobjets, etc. Il y a par contre des petits trucs, et c'est ce qu'on va voir justement
00:06:47 :dans les dates ici, des petits trucs à retenir un peu plus par cœur, c'est pour ça queje vous ai fait des petits trucs mnémotechniques et j'ai essayé de filtrer dans les informationsvraiment importantes à retenir un peu par cœur, parce que ça c'est des choses quevous ne pouvez pas forcément avoir, il y a notamment, je pense que vous l'avez mis,
00:07:03 :si je vais voir, c'est pyformat ou stringfortime.org, si je ne me trompe pas, oui c'est ça.Donc vous voyez, ça c'est la syntaxe pour transformer un objet de date en texte, etça fait un peu peur parce qu'il y a tous ces trucs-là avec des symboles, des dièses,des pourcentages, tout ça, ça fait un peu peur, mais finalement vous allez voir qu'en
00:07:23 :faisant le tri déjà dans les choses qui sont vraiment importantes, genre le pourcentageJ ou le pourcentage Z, perso je ne les ai jamais utilisés, donc j'ai fait un peu letri là-dedans et je vous ai trouvé des petits moyens mnémotechniques pour facilement s'enrappeler, c'est des trucs d'ailleurs que je n'ai jamais fait, moi cette liste je vais
00:07:38 :la retrouver régulièrement sur ce site, et en préparant la session justement ce soirje me suis dit qu'en fait il y a quand même une logique, et c'est assez facile finalementune fois qu'on a ces petits trucs de retenir quelles sont les syntaxes importantes à retenirici. Donc, on va voir plusieurs choses, je n'ai pas prévu de parler ce soir de tout
00:07:58 :ce qui est fuseau horaire parce que je pense qu'on pourrait faire une demi-heure ou 40minutes là-dessus, juste là-dessus, et ça va être trop long et ça risque d'êtreun peu compliqué, et il y a en fait tout ce qu'il faut sur Doxtring en termes de formation,d'articles et tout là-dessus, je vous ai mis pour les gens qui sont en Tosa tous les
00:08:16 :liens dans la correspondance, dans les étapes à faire, donc je vous conseille d'allervoir ça pour les fuseaux horaires, si vous avez des questions n'hésitez pas à les poser,j'ai vu des gens aussi qui posaient des questions, je crois que c'était toi Simon ou Al, jene sais plus, donc n'hésitez pas à poser vos questions s'il y a encore des trucs qui
00:08:32 :ne sont pas clairs. Là on va voir surtout tout ce qui est formatage, donc comment créerun objet de date de différentes façons, à partir d'une chaîne de caractères, à partird'un objet, comment passer de l'un à l'autre, comment faire les conversions aussi, doncjustement, là aussi on va voir des petits moyens mnémotechniques pour se rappeler des
00:08:50 :noms des méthodes et tout, donc comment passer de l'un à l'autre, les calculs, donc commentajouter des éléments. Là aussi on ne va pas rentrer trop dans le détail, notamment
00:08:58 :parce que justement dans le Tosa ils ne vont pas trop loin, ils restent avec les librairiesde base, là encore dans les formations, pour ceux qui les ont vues, je vous montre pasmal de choses un peu plus avancées. Personnellement sur Doxtring ce que j'utilise c'est arrow,
00:09:11 :c'est un genre de mot compliqué à dire en anglais, qui est une bibliothèque vraimentcool que j'aime bien, qui permet de faire un petit peu tout ça avec une bonne gestionde tout. Dans le Tosa comme je vous dis en fait il reste avec la bibliothèque standard
00:09:26 :date-time et quand ils font des opérations ils utilisent le time delta pour ajouterou enlever des jours. Donc voilà, pour ce soir on va rester sur des choses quand même
00:09:36 :assez simples et on va se concentrer surtout sur comment on peut retenir tout ça et pasavoir comme je l'ai fait pendant des années à retourner trop souvent dans la doc ou surGoogle pour des choses qui sont assez simples comme ça finalement, une fois qu'on saitles retenir. Alors, plateforme spécifique oui, alors effectivement, plateforme spécifique
00:09:58 :j'ai jamais, oui je sais pas, j'ai jamais, ça marche pas, ça te retourne absolumentrien Simon ? Parce que moi j'avoue que là pour, ah oui ok, pour, ah j'ai décidément
00:10:12 :un emblème. Oui en fait j'ai essayé ce matin le %-D sur Windows, ça marchait pas en fait,il le reconnait pas. Et les autres où il y a écrit la même chose avec un petit tiré
00:10:26 :après le dièse, ça marche pas, je pense que c'est pour ça qu'il y a écrit plateformespécifique j'imagine. Effectivement, sur Mac non plus ça marche pas, oui moi j'ai essayé
00:10:38 :ça marchait pas non plus. Alors ça après c'est peut-être aussi des choses qui vontavoir, par exemple je sais pour le coup que sur les nombres, alors là ça n'a rien àvoir avec les dates, mais sur les nombres j'ai eu d'ailleurs, il est pas là ce soirje pense pas, Vincent, pour ceux qui ont suivi la petite application que j'ai faite là de
00:10:59 :miniature YouTube, j'ai eu exactement ce problème là avec en fait un nombre, doncc'était le nombre de vues d'une vidéo YouTube que je transformais pour mettre des virgules,sauf que j'utilisais une fonction pour transformer le nombre sans les virgules pour rajouterles virgules en Javascript, et ça justement c'est effectivement spécifique à la plateforme
00:11:21 :sur laquelle ça tournait, donc moi sur mon Mac en fait ça mettait des virgules parceque justement dans vos options, que ce soit Mac, Windows, Linux, vous pouvez spécifierpar exemple est-ce que vous allez avoir des heures 1PM ou 13H, est-ce que vous allezavoir le mois, le jour, mois, année ou mois, jour, année etc, et c'est pareil aussi pour
00:11:39 :les nombres, donc vous allez pouvoir dire ok moi je veux la version américaine oùça va être le point pour séparer les milliers je crois, ou non les floats justement si ona 1.235 alors que nous en France on va être 1.235 par exemple. Et donc comme moi après
00:11:56 :j'utilisais cette virgule pour la remplacer dans certains cas, comme c'était sur uneplateforme quand je le mettais en ligne après qui était avec le format américain, c'étaitplus une virgule mais un point, donc mon replace de la virgule ne marchait pas. Et donc c'était
00:12:08 :le genre de petit bug assez vicieux que je n'avais pas vu, et c'est Vincent. Je précisejuste que du coup sur le lien qui est tout en bas de cette page que tu affiches là,il y a le lien vers un truc avec une sandbox pour faire des tests, et en fait ils te disent
00:12:25 :les trucs qui marchent pour les trucs qui ne marchent pas justement. Par exemple lepourcentage-D, le truc qui marche c'est le pourcentage-E. Ok ok, ben tu vois, perso
00:12:37 :moi ça a toujours, alors j'ai rarement utilisé ceux avec le, je vais grossir un petit peud'ailleurs, c'est peut-être un peu petit, j'ai rarement utilisé ceux-là, j'avoue quesouvent je mets le, enfin quoi que le D je pense que j'ai déjà utilisé, mais je nesais pas, je ne me rappelle pas avoir eu de problème là-dessus, donc c'est bon à savoir
00:12:56 :là effectivement, aller voir en bas s'il y a un, alors je ne sais pas c'est quoi ça,j'imagine interactive, ouais c'est celui-là, ah oui celui-là ok ouais, et là du coupok, ok ben tu vois, je continue d'apprendre des trucs, je suis resté bloqué moi surce vieux site là que j'ai toujours dans ma tête, au point que j'ai l'adresse string4time
00:13:19 :parce que c'est le même nom que la fonction justement en Python, donc bon à savoir qu'onpeut utiliser aussi lui, alors ça rajoute une complexité, alors pour ceux qui fontle Toza, moi j'ai toujours vu là quand ils font des, parce que bon j'imagine que leurenvironnement de test il est assez, enfin c'est un environnement qui est de leur côté
00:13:36 :donc il ne va pas bouger entre les différentes personnes qui l'utilisent, et dans toutesles questions que j'ai vues à chaque fois c'était le pourcentage D, le pourcentageM, Y etc, donc pour le Toza je pense que vous pouvez rester sur les versions qui vont fonctionnerici, et ça va me permettre justement de vous montrer mes petits moyens mnéo-techniques
00:13:55 :parce que là le E du coup ça ne marche plus avec mes moyens mnéo-techniques du coup,mais bon on va rester sur ceux là et c'est bon à savoir du coup si jamais ça ne marchepas qu'il y a des alternatives, perso comme je vous dis je n'avais jamais eu ce problème
00:14:07 :là, après souvent en perso je le fais aussi avec du Django et donc là aussi c'est desenvironnements assez spécifiques à chaque fois.Donc je reviens sur mon Toza, mon PyCharm ici, je m'en mêle les pinceaux déjà, doncça va jusque là, il n'y a pas d'autre réaction là-dessus, tout bon ok.
00:14:35 :Donc une première fonction que je vais vous montrer qui est, alors deux choses à diredéjà, trois choses à dire, on va commencer par le début, je vais aussi vous grossirun petit peu ici parce que c'est probablement assez petit, ok.
00:14:50 :Première chose qui mélange beaucoup les gens c'est tout simplement le nom du module lui-même,vous allez voir plus tard c'est la même chose avec random, c'est qu'en fait on a dans lenom du module on a un objet qui s'appelle dateTime aussi, ce qui donne, je crois quej'en ai un plus loin ici, dateTime voilà, on se retrouve avec dateTime.dateTime.string
00:15:12 :ici, et souvent on se mélange un petit peu, alors moi j'ai pris l'habitude souvent enfait d'importer directement dateTime comme ça et de ne pas faire from dateTime importdateTime et ensuite timeDelta etc, et surtout que ça peut causer des problèmes aprèsparce que par exemple, et effectivement ici je vais l'enlever copyCut parce qu'il va m'embêter
00:15:32 :ici, si vous faites un from dateTime import date par exemple, là ça va clasher avec,si vous faites une variable date vous allez écraser cette fonction, ça me permet dedire d'ailleurs, bon ça c'est quelque chose d'assez classique, je pense qu'à peu prèstous ici si vous avez suivi les formations vous avez vu ça, que justement quand on
00:15:49 :fait un from dateTime import comme ça avec l'astérisque c'est un risque parce qu'onva importer vraiment des centaines voire plus des milliers parfois de noms dans l'espacelocal et après on risque comme ça d'avoir des conflits entre des variables qu'on vacréer et des fonctions qui existent.
00:16:05 :Donc c'est pour ça que moi je préfère en fait toujours importer dateTime comme çaet après partir de dateTime et la plupart des choses du coup c'est dateTimeDelta etcrelativeDelta je sais plus, et après on a le date, on a le dateTime, parce que sinonaprès des fois on se mélange un peu, en fait ce qui m'arrive souvent c'est d'importer
00:16:29 :dans des anciens scripts, j'avais fait ça souvent, je l'importais comme ça le dateTimeet après du coup j'étais plus sûr s'il fallait faire dateTime.dateTime et puis là
00:16:36 :du coup je le faisais, j'avais des erreurs et en fait il faut juste l'utiliser commeça du coup quand on importe directement, donc je préfère importer dateTime commeça et après je pars de la racine et c'est juste que quand on utilise dateTime ça faitun peu bizarre, on a dateTime.dateTime deux fois, mais voilà il faut juste passer par
00:16:51 :dessus ça.Aussi ça c'est quelque chose, alors ça je ne l'avais pas vu dans le Toza mais jevous le mets ici, là encore avec des librairies plus avancées vous allez le faire d'uneautre façon, par exemple avec Arrow justement, vous allez dire dans les locales, vous allezmettre local égal fr comme ça par exemple directement en chaîne de caractère et il
00:17:09 :va automatiquement convertir votre date dans le format français.Avec les lib de base de Python il faut importer justement ce module local et changer la localpour la mettre en français.
00:17:22 :Pour les locales aussi ça c'est quelque chose qui peut vous être posé comme question,on a souvent ce fr en minuscule tiré fr en majuscule et les gens ne comprennent pastrop pourquoi on a un peu ce doublon, alors ça ça dépend beaucoup des pays, il y ades pays pour lesquels il n'y a pas vraiment de différence.
00:17:39 :En français par exemple ça va être les différences entre le français de France,le français du Québec, du Canada, le français, il y en a plein d'autres, j'imagine peut-êtred'Algérie, il y a plein de différences des fois qu'il peut y avoir dans la façondont sont formatées les choses, dans les mots qui sont utilisés.
00:17:58 :Je ne sais pas, probablement que si on affiche le week-end ici, en France il va dire week-endet si on met CA ici il mettrait fin de semaine, je ne sais pas, il faudrait voir, mais c'estpour ça qu'en fait on a ce fr en minuscule qui est le français et ensuite une précision
00:18:13 :qui est le français de où, du Canada, de la France etc.Vous allez avoir après la même chose avec le en qui va être US ou le en je crois aussiENGB ou ENUS qui lui est justement un peu plus, on voit un peu plus qu'il y a une différence
00:18:31 :avec le FRFR quand on voit ça des fois on ne comprend pas trop pourquoi il y a cetteredondance et donc c'est vraiment pour ça.
00:18:37 :Donc une fois qu'on a mis le set local ici qui va nous permettre d'afficher des datesen français, il y avait une question ?Oui j'ai pas bien compris, ça veut dire quoi afficher des dates en français ?
00:18:49 :Oui alors par exemple je vais te le montrer avec, je crois que je l'ai sur celui-là,attends je te le lance, non je ne l'ai pas, attends je vais mettre conversion, non, ledernier, bon je ne sais plus, mais en fait c'est que par exemple quand tu affiches ici
00:19:07 :tu vois dans les, je vais revenir sur mon screen, voilà, ici tu vois par exemple tuvas pouvoir afficher avec le pourcentage A ou le pourcentage A majuscule, le jour, lemois, c'est ça.
00:19:17 :Donc si tu ne mets pas ça, je vais vous le montrer là, string for time, oui c'est celui-làpourtant, formatage, ok attendez, formatage, je lance ça, ok voilà c'est ça, je ne saispas pourquoi il ne l'avait pas affiché, donc là tu vois on avait dit 22 octobre, c'est
00:19:33 :ça.De base c'est en anglais du coup.Donc voilà, il y a l'import, donc comme je vous dis, je vous conseille de faire justeun import date time et puis bon ça fait un peu plus de choses à taper mais c'est pasgrave.
00:19:47 :Ça protège aussi, donc comme je vous dis ici, pour éviter, parce que ça aussi c'estune erreur que j'ai vu des centaines de fois, les gens qui créent un objet date et quiécrasent du coup la date et après ça crée des erreurs en chaîne.
00:19:58 :Une fonction que peu de gens connaissent, que j'ai vu passer dans le Toza et qui effectivementdes fois est intéressante, et dans le Toza en plus c'était sur un exercice de code,donc c'est le genre de truc sur lequel il ne faut pas perdre du temps, c'est from iso
00:20:11 :format.Alors iso format c'est un format qui est, comme on dit, standard, qui représente lesdates du coup sous cette forme précise avec l'année, le tiret pour séparer les mois,les jours et on a ce qui n'est pas, enfin ça dépend après d'où vous venez effectivement,on a le mois et le jour, donc c'est un peu l'inverse.
00:20:35 :En France on est habitué souvent à avoir jour, mois, année, ce qui effectivement jetrouve le truc le plus logique.Souvent je crois qu'aux Etats-Unis ils vont inverser, vous allez avoir le jour et ensuitele mois, ce qui est là encore pas très logique, et le iso format du coup c'est inversé mais
00:20:50 :c'est quand même logique dans le sens où c'est du plus grand au plus petit, mais justedans le sens inverse, donc année, mois, jour.Et ça, ça va vous permettre du coup directement à partir de ce format de récupérer un objetdate.
00:21:01 :Donc il y a trois façons en fait, enfin il y en a plus que trois en fait, de récupérerun objet date, il y a pas mal de façons, donc on a ça, on a daytime.
00:21:09 :date.today, on a daytime.time.today aussi, non, daytime.time.now, non, daytime.now toutsimplement, non merde, daytime vous voyez elle est chiante cette librairie, on a todayet il me semble, je me confonds peut-être avec Django, je sais plus où il se trouvele now, daytime.daytime.now, ok il est là, super.
00:21:33 :Donc daytime.daytime.now, daytime.date.today, c'est ça voilà, puisque le now ici va vousretourner le temps, mais finalement ça on en avait déjà parlé dans une session, jepensais qu'il y avait une différence entre les deux, mais finalement j'avais fait letest et les deux retournent la même chose, si je fais un print des deux, si je me trompe
00:21:53 :pas, en fait les deux ont les informations d'heure, alors oui c'est juste qu'ils vousle retournent pas, mais je pense que si j'affiche le, je sais plus le, non bah non ok, je saisplus bon, faudrait que je revois ce sujet là parce que il me semblait qu'il y avait
00:22:08 :effectivement comme ici là quand je les affiche on a bien donc pour le now les informationsd'heure et pour le today, ah c'est peut-être quand on fait, oui voilà ok c'est ça, j'airetrouvé.
00:22:19 :En fait la confusion c'est que sur le daytime ici on peut afficher le now ou le today, etentre les deux ici il n'y a pas de différence, je vais essayer de ne pas aller trop vite,donc quand on utilise sur l'objet daytime, now ou today, à chaque fois ça va vous retourner,
00:22:33 :vous voyez la même chose ici avec une petite différence sur les microsecondes parce queforcément entre le temps d'exécution il y a une différence, mais quand on part del'objet daytime qu'on utilise now ou today ça change rien, par contre quand on partde date, là forcément comme on est un objet date c'est la différence entre l'objet
00:22:50 :date et date time, c'est dans le nom, date time on a les informations de temps alorsque date on a juste les informations de la date, c'est pour ça que justement ici parexemple aussi je peux afficher l'heure, donc je peux faire un point hour ici et ça va
00:23:02 :m'afficher juste l'heure actuelle, donc 20h parce que moi je suis au Portugal donc ily a une heure de moins qu'en France c'est normal, et le today vous voyez si j'essaiede compléter l'autocomplétion il ne me retourne pas le hour parce que là c'est un objet datedonc on n'a pas les informations de temps.
00:23:16 :Donc vous voyez c'est pour ça que je commençais à dire qu'il y a trois façons de récupérerdes objets en fait il y en a bien plus, souvent moi je vous dirais que j'utilise daytime.now
00:23:29 :comme ça j'ai toutes les informations et c'est celui qui me vient le plus en têtesouvent parce que today justement, daytime today on est jamais trop sûr est-ce qu'onva avoir quand même l'heure ou pas, daytime.now pour moi c'est clair, c'est tout de suite
00:23:44 :et comme on est sur daytime on sait qu'on va avoir à la fois la date et les heures.Et ensuite on a donc une autre façon, je vous la montrerai après, c'est les stringsfrom time, donc ça c'est des raccourcis strings from time et on a strings pay time
00:24:03 :donc str pay time comme ça qui signifie strings parse time.Donc strings f time lui c'est le plus simple, c'est on va récupérer une chaîne de caractèreà partir d'un objet date et strings parse time ça va être l'inverse.
00:24:18 :Mais on va y revenir par la suite, pour l'instant je veux surtout vous parler de cette syntaxequi fait un petit peu peur et des petits moyens mnémotechniques que j'ai trouvé pour vousen rappeler.
00:24:27 :Avant ça donc là vous voyez ici j'ai fait un petit print pour vous le montrer donc àchaque fois bien comprendre que quand on a ces objets, l'intérêt de ces objets c'estdu coup de pouvoir manipuler les dates et là encore on va voir comment manipuler justeaprès les dates facilement pour les manipuler, pour récupérer les informations.
00:24:44 :Parce que quand on a une chaîne de caractère ici comme ça, ça va être pénible, il vafalloir par exemple imaginer qu'on n'ait pas un module comme ça, il faudrait déjàvérifier est-ce qu'on a un séparateur par exemple un tiret ou un slash, une fois qu'ona compris que c'était un slash ou un tiret, faire un split pour récupérer les informations
00:25:00 :ensuite vérifier est-ce qu'on est en format jour, est-ce que c'est une année, est-ceque là le 2021 est-ce que le 21 c'est l'année ou est-ce que c'est le jour etc.
00:25:10 :Ce sera un peu pénible donc là en fait on a des façons comme ça de récupérer cesinformations pour ensuite facilement dire bah ok sur cet objet maintenant tu m'affichesjuste l'heure, juste le mois, juste l'année et on va voir par la suite qu'on peut aussiremplacer des informations comme ça facilement et récupérer tout ça après en chaîne de
00:25:25 :caractère.Donc string from time, là on a une, quelqu'un qui vient d'arriver encore, donc le premierintéressant donc le string from time qui est celui qui nous permet de spécifier icila syntaxe, c'est à partir d'un objet date on va récupérer une chaîne de caractèredonc comme le nom l'indique une string à partir from un time donc c'est marqué string
00:25:55 :from time, ils auraient pu mettre date time pour être encore plus explicite, c'est stringfrom time et vous pouvez lui passer une date comme on le fait ici, justement je vais enleverun petit peu tout ça, là vous voyez j'ai juste pris une date, je vais vous le commenter
00:26:08 :comme ça vous l'aurez dans le git.Donc là vous voyez on a juste une date, donc là on voit bien date time point date, onn'a pas des informations d'heure mais ça s'appelle quand même from time, donc làencore vous faites pas avoir c'est normal il y a juste ce from time et parse time pour
00:26:27 :tous les cas de figure.Et là donc comment retenir tout ça, donc je vous ai fait une petite, je sais pas sije vais réussir à tous les afficher avec le zoom, je vous ai fait une liste un petitpeu de tout ce qui est important à retenir, donc on a déjà les informations de date,
00:26:39 :ça c'est les plus simples parce que bon c'est les versions anglaises, on a le pourcentaged donc pour day, le pourcentage m pour month et le pourcentage y pour year, le truc quimélange souvent les gens c'est de se dire pourquoi on a pas un, alors on a en fait ici
00:26:54 :on a un y, je me plante, on a un y en petit, ce que je voulais dire c'est que personnellementje l'utilise assez rarement parce que bon c'est assez confus quand on a juste une datecomme je vous disais ici par exemple si on met juste 21 ici, là est ce que c'est le
00:27:09 :21 octobre 2022 ou le 22 octobre 2021 c'est pas très clair.Donc c'est quand même assez rare qu'on mette des dates comme ça de l'année en y minuscule,mais après c'est le même principe, à chaque fois vous allez avoir ici donc un truc différententre la majuscule et la minuscule et alors ce format là comme on l'a vu, comme vous
00:27:29 :me l'avez noté donc peut-être qu'il marche pas justement sur certaines plateformes,moi j'utilise donc souvent le d, le m et le y, donc ceux là c'est ceux qui sont assezfaciles à retenir avec l'expression la plus simple qui va vous retourner le plus d'élémentsà chaque fois, donc là avec un 08, 09 et après la version un petit peu plus complexe
00:27:48 :pour retourner la façon la plus courte donc sans le 0 de padding.Et après on a pareil, donc c'est à chaque fois le même schéma, vous voyez on a la versioncomme ça et après le tiret entre le pourcentage et le h, donc là encore toujours vous direla version normale c'est avec le 0 de padding qui est devant le nombre, la version avec
00:28:07 :le tiret c'est sans ce 0 avant, et là encore ça c'est assez facile, heure, minute, seconde,ce soit en anglais ou en français là c'est pareil, avec le H majuscule, M majusculeet S majuscule, donc là encore moyen mnémotechnique, pourquoi ceux là ils sont en majuscule parceque ça permet aussi de les différencier de ceux là, donc là on n'a pas de H pour
00:28:28 :le jour ou quoi mais pour le M par exemple c'est ce qui le différencie du mois.Donc dites vous bien pour tout ce qui est date et non pas horaire c'est en minusculesauf l'année, ok, qui permet de changer entre juste le 2 mais comme je vous dis pour
00:28:43 :le jour, retenez que l'année le year c'est toujours en majuscule et après heure, minute,seconde toujours en majuscule, et les deux autres qui sont importants à retenir, etlà moyen mnémotechnique je vous ai juste dit voilà c'est juste les deux premièreslettres de l'alphabet avec là encore le minuscule, majuscule, minuscule pour la version raccourcie,
00:29:02 :majuscule pour la version étendue, avec A qui est donc le jour et B qui est le moiset on n'a pas de, c'est ce que je vous ai mis ici, l'année ce n'est pas un nombredonc il n'y a pas de C, l'année c'est forcément 2010, 2011 etc, le jour ça peut
00:29:19 :être lundi, mardi etc donc là on va avoir une version en chaîne de caractère du nombredonc là il faut vraiment y aller dans l'ordre du plus petit au plus grand là encore, pourcentageA le jour, pourcentage B le mois et l'année vous ne l'avez pas.
00:29:33 :Donc je vais vous mettre tout ça dans les sources de cette session, day, month, year,retenez ça, ceux là c'est les versions spécifiques, les versions spécifiques en fait je vous diraisretenez juste le fait qu'il y a un tiret entre le pourcentage et le nom, donc déjàvous voyez vous pouvez éliminer celui là, si on les rassemble vous voyez vous pouvez
00:29:53 :éliminer tout ça, là ça en fait 3 ici à retenir, 4, 5, 6, 7, 8 je dirais puis aprèsles versions majuscules. Donc ça fait 7 ou 8 trucs à retenir, la plupart sont assez
00:30:05 :logiques, heure, minute, seconde, day, month, year, donc finalement vous voyez une fois qu'onfait le ménage un petit peu dans tout ça c'est déjà beaucoup moins stressant. Et
00:30:16 :après vous vous y mettez un petit peu pour ceux qui vont passer le TESA, ce genre detrucs, 2 jours avant de le faire vous faites une petite session d'exercice pour vous remettreça dans la tête et ça va rentrer assez vite. Et donc là ça nous permet d'afficher
00:30:29 :tout ça, donc là si je relance mon script c'est ce que j'avais affiché vendredi 22octobre 2021, donc on a le pourcentage A donc c'est le jour en complet, vendredi, D, dayavec donc là je vais voir, bon là ça changerait rien puisque on est le 22 donc si je relance
00:30:45 :là vous voyez ça change rien que je mette le tiret ou pas, si je mets par contre onva mettre le 01, là on a le, donc moi ça marche sur mon Mac, on a le 1er octobre oule 01 octobre comme ça, B donc là ça va être le, donc là on se souvient aussi, ça
00:31:02 :c'est toujours comme je vous dis le truc je voyais moi je me disais B c'est quoi B, j'essayaisde chercher une équivalence de me dire B c'est quoi ça peut être des je sais pas, birthdayou un truc comme ça et en fait j'arrivais jamais à retenir le A aussi à chaque fois
00:31:14 :que je le voyais je me disais merde qu'est ce que c'est, maintenant je m'en souviensparce que A B donc A le jour, B le mois et donc le mois et après avec la locale icien FR on est avec octobre. Aussi simple et Y donc comme je vous disais le petit Y pour
00:31:26 :21 ou le grand Y qu'on utilise généralement. Ok. Alors ouais il y a des questions là.Simon la fonction des time time zone ? Non je crois pas, je sais que là encore j'ai
00:31:42 :une utilisation très Django de tout ça, dans Django il y a Django utils time zoneque j'utilise tout le temps et je crois que ça a changé aussi avec les dernièresversions de Python parce qu'avant on avait PyTZ qu'on utilisait dans les dernièresversions, ils ont amélioré ou changé ça, faudrait que je leur dise mais dans mes souvenirs
00:32:05 :je crois qu'il n'est plus trop utilisé, après ça faudrait aller voir pour tout cequi est gestion de time zone, ça c'est vraiment le genre de truc où je me souviensdes grandes règles de base de voilà faut convertir en ITC et faire les trucs et aprèsremettre dans la time zone, ça c'est le principe de base, après tous les petits trucs
00:32:21 :j'en fais pas assez pour les m'en souvenir par coeur donc pour ça je vous dirais deretourner voir la formation où j'explique tout ça, j'avais pris du temps pour vraimentdépatouiller tout ça. Dans la formation tu parles du module zone info qui est depuis
00:32:35 :la version 3.9 et qui effectivement est super bien mais là tout à l'heure dans le discordil y a quelqu'un qui a parlé justement de time zone pour retrouver le temps UTC etdonc je voulais savoir si c'était encore d'actualité ce truc là mais c'est sympaqu'avec le module info on peut tout faire. Ouais je sais plus, attends je vais aller
00:32:55 :retourner voir, attends j'avais mis le lien sur le notion ici, voilà la gestion desdates, tac, hop, ici on est à côté, gestion des fuses horaires, oui je sais plus si j'utiliselà, date time now, ouais là c'est ça j'utilise zone info, ok je l'utilise ici, ah je sais
00:33:23 :plus ouais, il faudrait que je revoie tout ça, ça m'empêchera pas de dormir, non nonmais t'inquiète j'essaie de voir si ça me rappelle des trucs mais c'est plus assezfrais dans ma tête parce qu'effectivement tu vois juste ce truc là, effectivement jeme rappelle que le UTC on pense que c'est un fuse horaire en fait non, déjà ça c'est
00:33:45 :le genre de truc où effectivement on oublie ça, et ouais et après la gestion, dans messouvenirs c'est ça on l'utilise après souvent quand on veut faire les trucs bien zone infopour remettre, après effectivement peut-être pour les remettre au départ en UTC on l'utiliseet qu'après on utilise zone info pour les remettre dans les, c'est peut-être ce truc
00:34:04 :là, bah ouais du coup je te redirige là dessus pour revoir ça, parce que c'est çaon peut s'en mêler aussi là dedans, ouais William ouais les time zones c'est un trucque j'ai pas vu de question de Toza là dessus ça m'étonnerait qu'il vous embête trop,je pense que s'il y a des questions ça va être justement des trucs un peu plus génériques
00:34:24 :en mode quel est le nouveau truc qui est apparu dans les dernières versions de Pythonqui vous permettent de gérer les time zones, donc là ça va être justement zone info,ou quel est l'ancien PyTZ, ou peut-être des trucs justement quel est UTC, je pense pasqu'ils vont, enfin j'ai pas vu en tout cas de questions vraiment comme ça de gestion
00:34:43 :de fuses horaires, j'ai vu une question de code où justement c'était un truc où ilsutilisaient from isoformat, donc en gros il fallait, on vous donnait une chaîne commeça en chaîne de caractère, et c'est en fait c'est ça, c'est là où je me suis planté,c'est qu'en fait on vous donnait ça comme ça, sous forme de chaîne de caractère,
00:35:01 :et il fallait en gros ajouter une semaine à cette date, et moi comme je me souvenaispas justement par coeur de toute cette syntaxe là, j'ai passé trop de temps à me planterparce que j'ai mis le Y justement en petit etc, après j'étais la merde les mois je
00:35:18 :sais plus est-ce que c'est le grand M ou le petit M, j'ai perdu une ou deux minuteset comme le truc est timé à 5 minutes et que plus ça avance plus on stresse, doncj'ai vraiment perdu du temps là dessus, et c'est là où bon déjà de base si j'avais
00:35:31 :retenu ces petits trucs mnémotechniques, ok là grand Y, la date, après le mois c'estles minuscules parce que les majuscules c'est les heures, minutes etc, je serais allé plusvite, et si encore plus, parce que c'était ça la solution, si je m'étais rappeléqu'en fait il y a ce isoformat et cette fonction qui nous permet de le récupérer,
00:35:49 :on n'a même pas besoin de se rappeler de la syntaxe ou quoi, on repère que le isoformatc'est sous cette forme là, année, mois, jour avec les tirés, on utilise ça, directon a le date et après on fait un time delta et vraiment en deux lignes c'est réglé
00:36:02 :et en 20 secondes c'est fait. Et c'est vraiment ça qui montre dans tout le Toza comme jevous dis souvent, qu'il y a plein d'exercices comme ça où en fait on se plante sur despetits trucs comme ça, et quand on commence à être dans les 2-3 minutes sur les 5,
00:36:16 :on panique, on stresse, on sait plus et puis là c'est foutu, et en fait si on partbien dès le début avec les bonnes choses, souvent en fait en deux lignes c'est régléparce que le truc en soi n'est pas très difficile, c'est juste qu'il ne faut passe bloquer sur des petits trucs comme ça. Ok donc je reviens maintenant sur les conversions,
00:36:35 :donc effectivement là aussi il y a un truc qui mélangeait beaucoup au début sur lesconversions, donc le string for a time, on n'a qu'un seul truc à lui donner parcequ'on part ici de notre objet et on lui donne juste un moule, en fait on lui ditvas-y ma date tu vas la transformer de cette façon, avec cette syntaxe là. Le string
00:36:53 :parse time par contre on lui donne deux éléments parce que là on va lui dire ok j'ai 7 chaînesde caractères sous ce format, et on lui donne le moule avec lequel on veut déchiffrerça ici. Et donc la meilleure façon de le voir c'est ce que je vous montrais tout à
00:37:06 :l'heure ici, si je reprends celui là par exemple, parce que là encore c'est facilequand on a 21 10 2021 de façon humaine on peut se dire ok 21 il n'y a que 12 mois dansl'année donc ça c'est forcément le jour, et là on a 2021 donc c'est forcément la
00:37:20 :date. Si on avait ça comme ça, bon là comme c'est le même on pourrait deviner,mais si je mets 22, là est-ce que c'est 2022 ou est-ce que c'est 2021, bon on estmoins sûr, et du coup si on donne ça à Python, si on lui donne ça comme ça, il
00:37:34 :ne peut pas deviner, il ne peut pas deviner et faire le choix à notre place de direje vais considérer que le dernier c'est l'année etc. Donc en fait c'est pour ça
00:37:41 :qu'on va lui préciser. Donc si je mets une date comme ça, on va mettre 21 10 22,et on va considérer qu'en fait c'est l'inverse, que c'est justement le premierici, c'est l'année. Donc là je vais vous laisser essayer un petit peu, mettre moi
00:37:56 :dans le chat là quelle chaîne de caractère il faudrait mettre ici pour qu'on puisserécupérer un objet dans lequel ça ici c'est l'année 2021, ça c'est le mois,et ça c'est le jour. Qu'est-ce que vous mettriez, metteriez, mettriez, maintenant
00:38:12 :je me plante sur le français. Qu'inséreriez-vous ici ? Dites-moi dans le chat. En portugaisje pense. Alors on a des trucs similaires mais pas totalement. Donc effectivement déjà
00:38:45 :il faut mettre le caractère, là la plupart ne mettent pas le caractère, il faut spécifierce slash parce qu'il ne va pas le faire à votre place, là vraiment il faut tout spécifier.
00:38:58 :Donc si vous avez un tiret comme ça ou un slash, il faut le mettre dans la version ici.Alors je ne sais pas après c'est peut-être le formatage sur le chat qui vous a enlevéle slash, mais je crois que j'en ai vu qui l'avait mis. Ouais Israel tu l'as mis. Donc
00:39:19 :là si on met, on va y aller dans l'ordre, là on a dit que c'était les années, doncles années, sauf qu'on les veut juste avec les deux nombres, donc là on a dit que c'estle Y minuscule. Peut-être que s'il y en a pour qui ça ne marche pas c'est peut-être
00:39:33 :le fameux truc de plateforme spécifique, là il faudrait regarder. Donc on commenceavec les années, ça c'est le premier pourcentage Y en minuscule, on met le slash pour indiquerparce que là il faut vraiment le mettre. Le mois on a dit que c'était le petit m,
00:39:49 :là dans ce cas-ci on est avec un mois qui est 10 donc on n'a pas le problème de 0padding, on va mettre un autre, on va mettre 0.5. Là si je mettais juste 5, effectivement
00:39:58 :il faudrait que je spécifie tiret m. Donc tiret m pour dire que c'est le mois mais sansle 0, et le jour ça va être pourcentage d, là encore comme je suis avec 22 je n'aipas trop imposé la question, je peux mettre tiret d ou d et c'est bon, mais si par exemple
00:40:15 :on avait là encore le 2, là si je mets le 2 il faudrait que je mette tiret d. Doncon va voir si je ne me suis pas trompé, je vais lancer ça, print date, conversion,je lance, et ben non, is a bad directive, ok, alors là il ne m'aime pas. Donc c'est
00:40:38 :peut-être ce truc de plateforme spécifique, là il me le trouve, et si je mets ça, oualors c'est moi qui me suis trompé, est-ce que, oui non c'est ça, tiret d c'est sansle 0, donc normalement c'est ça, là il n'aime pas donc je pense que ça doit être peut-être
00:40:56 :le truc de plateforme spécifique, il faudrait que je vérifie, et si j'enlève les 0, okj'avais mis les 0, ok donc là c'est normal, il y a les 0 ça marche, si j'enlève les 0et que je remets ça, je vais peut-être en mêler les pinceaux, non là il ne veut pas,
00:41:11 :ok, mais par contre si je l'enlève là il marche, ok, bon, ça ça me surprend un peu,il faudrait que je revérifie, je vais me le noter, hop, pour vous faire un tour surle discord là-dessus. Tu remplaces le tiret d par un e et ça marche. Ouais c'est ça,
00:41:28 :bon bah ça doit être ça alors, si je mets ça, ah tiret e oui, non, bah tu vois çadoit dépendre, toi tu es sur Windows non ? Ouais je suis sur Windows et en fait pourcentage
00:41:41 :e ça marchait ce matin, mais là ça n'a plus l'air de marcher. Ok, bah faudrait, j'avoueque là encore je suis souvent avec des 0 et tout, donc j'avais pas fait le test avant,mais normalement dans la logique du truc ça devrait être bon, après ouais effectivementça, ça, de toute façon les dates c'est pour ça que finalement quand vous l'utilisez,
00:42:04 :moi j'utilise comme je vous disais là le arrow parce que ça gère plein de trucs commeça, pour ça dites-vous bien, voilà, c'est les trucs théoriques à savoir et là encoreje reviens sur le Toza, moi j'ai vu l'utilisation de fromiso et j'ai pas eu de problème commeça, parce que comme je vous dis je pense que comme leur environnement il est de leur
00:42:24 :côté, bon je pourrais me renseigner quand même, voir si, j'imagine que s'ils ont eudes problèmes avec ça, ils ont déjà eu des retours d'étudiants, donc j'imaginequ'ils ont géré le truc, je vais voir, mais j'avais pas eu de problème moi en utilisantces syntaxes là, parce que de toute façon comme je vous dis les dates étaient formatées
00:42:43 :de façon assez claire. Linux ne veut pas du tiret non plus, ok, mais voilà, donc sion revient sur un exemple plus, voilà, si je reviens sans les tiret m, tiret d etc,si je reviens là-dessus, je relance, normalement c'est bon, voilà. Donc là vous voyez il
00:42:59 :a bien compris, comme on a mis %y ici, que le 21, vous voyez ma fiche, c'est bien 2021.Donc ce qui est intéressant c'est qu'après, justement c'est ce que je vous ai mis après,ça je vous conseille de vous entraîner à faire plein de trucs comme ça, c'est-à-direde passer de l'un à l'autre, de faire des manipulations, donc de partir d'une date
00:43:18 :en chaîne de caractère, de la récupérer sous forme de date, de la reformater, de larécupérer en date, de rajouter des jours, de changer le fuseau horaire, de prendre cesobjets-là et de les manipuler dans tous les sens pour vraiment vous faire avec toutesces méthodes-là. Donc là vous voyez je reprends ma date que j'ai convertie, donc
00:43:36 :qui est cette fois-ci un objet date time, donc là j'ai mis date mais si je l'afficheprint date, oui c'est ça là vous voyez que ça m'affiche bien les heures, minutes,secondes, par défaut quand on ne définit pas justement, là on pourrait avoir 12h50et 10s et là ça va être la même chose, on met l'espace et on met pourcentage heure,
00:43:59 :deux points pourcentage minute et deux points pourcentage seconde si je ne me trompe pas.Et là vous voyez vous allez avoir le temps aussi, si vous n'avez pas d'informationde temps, par défaut il va mettre juste 000. Et là vous voyez je récupère la date,
00:44:14 :l'objet, donc là si on fait un print de type de date, on est bien avec un objet datetime. Et ensuite là je fais un string for a time, donc là je rechange le truc, donc
00:44:24 :ça c'est là encore comme je dis un truc très classique, vous avez une date qui estdans un format pas très bon pour vous avec l'année au début formatée comme ça, etaprès hop vous la remettez dans le format français avec le, ah non là du coup j'aiun mois, on va mettre hop day, month, year comme ça, 22, 10, 2021. Donc voilà ça c'est
00:44:46 :un truc très classique et ce qui est bien c'est que là comme on est du coup avec l'objetdate, bah là on peut faire des opérations, par exemple dire on va remplacer l'annéeet plutôt que de 21 on va mettre 2024. Et là si je relance, ah oui alors ça il faut
00:45:00 :le remettre dans l'objet, faites attention avec ça, ça va pas modifier l'objet enplace et si vous faites un print ici ça va vous retourner non, parce qu'en fait çava, non, ah non il me le retourne comme ça, je pensais que, ok non, j'avais fait un exempletout à l'heure où, c'était peut-être sur autre chose alors, replace, non je sais plus,
00:45:25 :tout à l'heure j'ai fait une opération ça m'a retourné non, et je m'étais ditqu'il fallait que je vous le dise mais bon je l'ai plus. Mais si vous faites juste
00:45:32 :un date.replace ça va pas modifier directement l'objet, donc il faut vraiment faire dateégal date replace pour récupérer cette information, si je fais juste ça vous voyezlà on est toujours avec 2021. Donc là je remplace l'année et vous voyez que c'est
00:45:46 :plus simple du coup une fois qu'on a un objet date, là tout l'intérêt du truc, plutôtque de ici faire, parce que là justement si on a fait 21, 21, et qu'on faisait unreplace de 21 en 2024, bah là on remplacerait à la fois sur la chaîne de caractère,
00:46:01 :ça serait à la fois le jour et l'année. Donc là c'est ça l'intérêt, c'est qu'avecce formatage on récupère tout bien comme il faut, ensuite on peut remplacer les élémentscomme il faut, et ensuite les récupérer sous un format qui nous plaît. Ok ? Ça
00:46:16 :va pour ça ? Il y a des questions ? Alors, quelle est la différence à utiliser ? Stringtime. Alors, fait voir je copie tout le monde. Donc quel est l'intérêt de faire ça versus
00:46:46 :ça ? Très bonne question, ça dépend ce que tu préfères, je te dirais que moi pardéfaut je me suis habitué à utiliser string from time, parce que j'aime bien la façonde faire avec le, comme je te dis souvent quand tu fais un script ou tu travailles avec
00:47:09 :des dates, souvent t'es amené à utiliser le parse time et le for time. Souvent aussicomme je dis, je reviens là dessus, t'es amené à utiliser d'autres façons de fairequi font que t'as même pas besoin d'utiliser ni l'un ni l'autre, parce que par exemplearrow tu vas avoir des trucs genre humanize qui va te dire, il va te transformer le truc
00:47:26 :en il y a 3 jours où il va justement t'afficher les trucs plus facilement avec d'autres méthodes.Donc finalement dans un usage plus professionnel je te dirais que quand je travaille avec desdates, finalement j'utilise rien de tout ça. Et après, quelle est la différence entre
00:47:44 :les deux, c'est à toi de voir, est-ce que tu veux utiliser les fonctionnalités defstring ou est-ce que tu veux utiliser directement les trucs du module. La syntaxe est la même
00:47:52 :heureusement, donc au moins là dessus c'est cool. Et après c'est une question de préférence,une question d'équipe aussi, si dans ton équipe tu arrives à un endroit et eux ilstravaillent comme ça, tu vas suivre les conventions de la codebase parce que tu veuxpas justement commencer à faire d'une façon différente pour qu'après dans le script
00:48:13 :chacun fasse d'une façon différente et que ça devienne difficile à suivre. Maisvoilà, après c'est surtout d'un point de vue, quand t'es tout seul, point de vuepersonnel, préférence tout simplement.
00:48:23 :Ok, et on arrive, quelle heure il est, ok ça va. Donc on arrive au calcul des dates,ça aussi c'est un truc comme je vous dis, plein de choses qui peuvent mal se passeravec, faut faire attention au fuseau horaire, faut faire attention à plein de trucs, desfois les années bissextiles, des trucs comme ça. Normalement quand même là ici ça gère
00:48:48 :genre tout ce qui est date ici en fait c'est basé sur, et ça aussi je l'explique dansl'article, c'est basé sur le temps, l'époque comme on dit, voilà ce truc là, qui varielà encore selon les systèmes, selon plein de trucs, mais en gros ce qu'il faut vousdire c'est que les programmes ici ils savent par exemple que dans ce mois-ci, en 2024,
00:49:14 :il y a 31 jours dans le mois de mai. Donc vous allez pas avoir un problème ou un moment,vous allez ajouter 7 jours justement après le 30 et parce que vous lui aurez pas dittiens attention ce mois-ci il y a 31 jours il va se planter pareil avec les années bissextiles
00:49:28 :etc, tout ça c'est quand même des trucs, il n'y a pas d'aléatoire, on sait commentça marche et c'est dans ces programmes là, donc ça va pas planter. Le seul truc là
00:49:39 :où ça peut justement planter c'est les fuseaux horaires si vous les manipulez malou si vous n'y faites pas du tout attention, là vous pouvez avoir des problèmes qui sepassent parce que vous allez prendre une date de votre ordinateur qui va être dans votrefuseau horaire, vous allez rajouter des choses, vous allez la poster sur un serveur qui va
00:49:57 :être aux Etats-Unis et qui va lui aussi peut-être décider de mettre son propre fuseau horaireet là vous pouvez avoir des décalages énormes, imprévus, donc c'est pour ça qu'il fautbien gérer ça si vous le faites. Mais après là dans ce cas-ci, donc là encore je vous
00:50:11 :montre les trucs que j'ai vu dans le Toza, c'était surtout le TimeDelta, donc là encoreil est à l'intérieur du module DayTime, et ce qu'il faut bien comprendre c'est, je croisque c'est Albert qui avait posé une question, je sais pas s'il est là, le TimeDelta cequ'il faut bien comprendre c'est que c'est pas une date, ça c'est une erreur que je
00:50:29 :vois très souvent, si je fais un print ici du type de Delta, et que je lance calcul date,là vous voyez on est avec un objet qui comme son nom l'indique est un TimeDelta, et unDelta c'est une unité de temps entre, d'ailleurs un Delta je crois que c'est pas forcément
00:50:45 :en général un temps, un Delta ça peut être entre deux, une distance entre deux choses,là comme c'est un TimeDelta c'est une distance, une différence effectivement Yannis, entredeux choses. Donc là en fait quand on met Days7 ça va être une différence de 7 jours,
00:51:03 :et on va ajouter cette différence à une date qu'on a, donc là qui va vraiment êtreun objet Date ou DayTime, et on va lui dire ajoute ces informations. Là il faut bien
00:51:14 :aussi, quelque chose que je vois souvent aussi comme confusion, c'est quand est-cequ'on met Days, quand est-ce qu'on met Day, là quand on utilise Replace par exemple,c'est assez logique en fait si vous réfléchissez à chaque fois, moi j'ai pas de moyens mnémotechniquesou quoi, je me fais juste me poser la réflexion, là quand on fait un Date pour un Replace,
00:51:34 :on remplace pas plusieurs jours, il n'y a pas plusieurs jours dans une date, donc forcémentlà on va remplacer un élément dans l'objet, donc ça va soit être le Day, on peut enremplacer plusieurs, on peut remplacer le jour et l'année, mais ça va pas être Yearsparce qu'on va pas remplacer plusieurs années d'un coup. Par contre dans le TimeDelta,
00:51:51 :même si vous mettez 1, c'est une différence, et la différence elle peut être de 1, de2, de 100, elle peut même être comme je vous l'ai montré ici négative, et ça c'estmarrant parce que du coup on peut faire exactement la même chose mais de différentes façons,on peut ajouter un Delta négatif, donc ce qui revient à enlever 7 jours, ou on peut
00:52:11 :enlever un Delta positif. Donc à vous de voir comment vous préférez, quelle est lalogique qui vous convient le mieux, est-ce que vous préférez ajouter un Delta de moins7 jours ou enlever un Delta de 7 jours ? A vous de voir, mais les deux font finalement
00:52:26 :la même chose. Donc le TimeDelta ça va juste décaler tout ça, et on peut le faire avecles jours, on peut le faire, alors on peut pas le faire avec les années justement, j'allaismettre Years mais non, si je me souviens bien c'est ça, on a les Days, Seconds, Microseconds,
00:52:40 :Milliseconds etc, on a les Weeks aussi, et ça aussi là encore si vous me posez la questionquand est-ce qu'on l'utilise tout ça, là encore personnellement quand j'ai à faireça, il y a une bibliothèque que je montre aussi dans la formation qui est RelativeDeltaje crois, ou RelativeTimeDelta, je sais plus, elle a un nom assez compliqué, qui justement
00:53:03 :est un peu plus facile à manipuler, qui gère pas mal de choses en plus, et qui si je metrompe pas permet effectivement de faire directement Year et Month, parce que là avec le TimeDeltavous voyez il y a les Weeks bizarrement, il y a les semaines, mais après ça s'arrête
00:53:18 :à jour, et des fois en fait on a juste envie de dire bah tu rajoutes, je veux aller auprochain mois donc tu rajoutes un mois, et ça c'est pas possible avec le TimeDelta debase, parce que le problème ici notamment c'est que si on ajoute des jours, on pourrait
00:53:32 :se dire bon bah on va ajouter 30 jours, mais là vous vous retrouvez avec le problèmedes années B-Style, des mois qui ont 30 ou 31 jours, si je veux aller au mois suivantest-ce que je mets 30 ou 31, est-ce que je mets 28 pour le mois de février, si je suis
00:53:44 :en janvier etc, ça devient le bordel, donc c'est pour ça que ça peut être pratiquesur des petits trucs, si vraiment vous savez que vous voulez ajouter juste un jour, çapeut être pratique, un TimeDelta d'un jour il va décaler, si là on est le 30, commeje vous disais si je mets Day1 et que je fais un print de NextMonth, là vous voyez qu'il
00:54:06 :va bien comprendre qu'il y a 31 jours et il va passer au 31, et si je mets 31 il vapasser au 1er juin. Donc si c'est des petits trucs comme ça, si vous voulez ajouter des
00:54:17 :petits éléments le TimeDelta peut aller, quand vous allez plus loin que la semaine,le mois, l'année etc, là encore il y a d'autres bibliothèques qui vont vous permettre defaire ça un peu mieux. Ça va pour ça, donc comme je vous dis, je vais vous mettre tout
00:54:35 :ça dans les sources, regardez les formations, le mieux que vous puissiez faire c'est, ily a des exercices sur docstring faites les, c'est bien pour justement la logique et tout,mais le mieux je vous dirais c'est de commencer, vous ouvrez un terminal, un interpréteurPython, et vous vous lancez, j'importe la librairie, ok je vais essayer de créer une
00:54:54 :date à partir d'un format ISO, ok maintenant je le transforme en format avec des slashes,je vais essayer de récupérer ce format slash cette fois en date maintenant, je vais rajouterdes informations d'heure, je vais rajouter un Delta, je vais la convertir, je vais fairetous ces trucs là, je vais le remettre en ISO tout ça, essayez de faire toutes ces
00:55:16 :manipulations, et vous allez voir qu'au bout d'un moment ça va rentrer dans la tête,dans les doigts, et vous allez vraiment pouvoir maîtriser tout ça, il faut vraiment le faire,sinon si vous passez des mois, vous pouvez passer des mois à regarder tout ça et àcomprendre ce qui se passe, mais tant que vous ne le ferez pas vraiment plein de fois,
00:55:31 :ça ne va pas rentrer. Et après voilà les petits moyens mnémotechniques et tout ça,essayez de retenir un petit peu ça, et après bon voilà, là je parle ce soir pour ceuxqui font le Toza, parce qu'il y a le côté un petit peu par coeur, parce que vous ne
00:55:44 :pouvez pas aller sur Google, pour les autres sinon c'est pas grave, au pire vous ne retenezpas et puis vous perdez 30 secondes à chaque fois à aller chercher.
00:55:56 :Et oui alors, tu parles des FVAR, qu'est-ce qu'ils disent ? Oui, ah oui effectivementles tokens sont, oui, là il y a Simon qui a mis les tokens de la librairie, c'est vraiqu'à chaque fois je me fais avoir parce que je pense qu'ils sont pareils, ouais,ils sont bien, c'est pour ça que je, voilà, on revient à ce que je vous disais, que ça
00:56:22 :c'est les trucs de gestion de date avec Python, je pense que ça remonte à, je ne sais pasprécisément, mais ça ne m'étonnerait pas que ça fasse 20 ans ou 30 ans, même quec'est dans le code, donc voilà, c'est le genre de trucs que des fois on se traîne
00:56:37 :et il y a peut-être un gars qui s'est dit que c'était une bonne façon de faire avecle pourcentage D, etc. Et finalement il y a des choses plus simples là, effectivement
00:56:46 :avec du plus petit au plus grand, moi, Day, W, H, HH, HH, AM, PM, tout ça, oui. Arrow,allez la voir, elle est bien cette bibliothèque, franchement, il y a elle et il y en a uneautre quasiment pareille, Pendulum, je crois, Pendulum, Touton, ouais c'est ça. J'avais
00:57:12 :testé les deux, finalement j'étais resté sur Arrow, et je ne sais plus pourquoi exactement,mais il me semble qu'elles étaient assez similaires. Vous pouvez faire un peu la même
00:57:24 :chose là, le Shift, là vous voyez c'est Add avec Arrow, c'est Shift justement, doncfinalement les deux sont assez similaires, mais il y a beaucoup, ça ça ne m'étonnepas, c'est le genre de trucs, ouais c'est ça, peut-être qu'un jour ça sera intégréà Python, pour l'instant il y a des libs qui font le travail, donc il faut juste les
00:57:39 :changer parce qu'elles ne sont pas inclus avec Python, mais c'est pas très grave.Ok, ça va pour ça, on est déjà à une heure, mais on va continuer un petit peu,je ne pense pas que j'aurai le temps de faire tout sur les fichiers, mais on va avancerquand même un petit peu. Module Random, ça aussi c'est des trucs, je vous ai presque
00:58:00 :tout mis les trucs plus importants, c'est plus des fiches, d'ailleurs c'est ce queje me disais, là encore plus spécifiquement pour ceux qui font le Toza, c'est je pensedes trucs importants à simplifier, parce qu'il y a plein de choses dans le Random,si justement on fait un print de dire de Random, et que je lance ça, et on va faire un pprint,
00:58:24 :parce que sinon on ne va rien voir, vous voyez là il y a tout ça, il y a plein de trucslà qui ne servent pas, mais voilà, vous avez Beta Varied, je n'ai aucune idée dece que c'est, Binomial Varied, il y a plein de trucs pour plein de cas d'utilisation,
00:58:41 :finalement c'est ce que j'essaie de faire, de vous rassembler les trucs vraiment importantsà connaître plus ou moins par coeur si vous passez le Toza pour ne pas être bloqué.
00:58:52 :Dans le module Random, je vous dirais, là on est un peu avec la même chose, avec leDaytime.Daytime et le Random.Random, donc encore je préfère importer Random comme
00:59:03 :ça, et ça permet d'éviter justement par exemple Sample, c'est un nom de variable assezclassique, donc si vous faites From Random Import comme ça, ou juste même Import Sample,c'est pas rare d'écraser le truc comme ça après, donc là encore je préfère importerle module pour me protéger. Donc on a le Random.Random qui est important à connaître,
00:59:25 :mais finalement assez peu utilisé, je dirais qu'il va juste vous retourner un nombre entre0 et 1, donc là vous voyez, c'est le truc le plus classique, et c'est la même choseque ce que je fais à la fin avec le Uniform, j'ai mis entre 1 et 10, mais si on fait entre
00:59:41 :0 et 1, ça va être la même chose en fait. Ce qu'il faut vérifier toujours, c'est àquel point c'est inclusif ou exclusif, là par exemple pour le Rendint, vous voyez j'aimis inclus 1 et 10, donc avec un Rendint, si je mets 1 et 2, vous allez pouvoir avoir
00:59:56 :soit 1 soit 2. Donc là si je relance ici, vous voyez là on a 1, 1, 1, 1, 2, donc le2 peut être inclus, et comme c'est Rendint, vous allez avoir seulement des nombres entiers.
01:00:11 :Le Random c'est des nombres entre 0 et 1, il faudrait voir ici, ouais je sais pas, ingeneral ils disent même pas. Est-ce qu'on peut avoir le 1.0 ou est-ce que ça s'arrête
01:00:23 :à 0.999 ? Pareil avec le Uniform, ça faudrait voir, mais après bon voilà, ça c'est pasdes trucs très importants. Pour le Rendint c'est plus important parce qu'effectivement
01:00:34 :si on fait 1 et 3, c'est important de savoir est-ce que le 3 peut être inclus. Si vousvoulez faire des nombres aléatoires entre 1 et 2 sans le 3, si je fais 1 et 2 là jepeux avoir 1 et 2, si je fais 1 et 3 je peux avoir aussi 1 et 3, donc ça c'est important
01:00:48 :quand même de le savoir pour celui-ci. Pour les autres c'est important de savoir si vousavez besoin de pas avoir vraiment le 1 et que s'il est inclus vous allez mettre 0.99,
01:00:58 :mais bon là encore c'est des cas de figure assez spécifiques. Est-ce qu'on peut fairedes Random sur des dates ? Qu'est-ce que tu veux dire William ? Genre générer des
01:01:09 :dates aléatoires ou dans quel cas de figure tu voudrais faire ça ? Oui avec Faker tupeux le faire effectivement, après ça pourrait être un exercice intéressant à faire,ça pour ceux qui cherchent des exercices, faire un petit générateur de dates aléatoiresque tu pourrais faire justement avec des intervalles et puis après tu génères des
01:01:41 :années, des mois, tout ça aléatoire. La difficulté serait dans ce cas-là de ne pastomber sur des dates qui n'existent pas justement parce que si tu fais par exemple pour lesjours entre 1 et 31 tu risques de tomber des fois sur des mois qui ont 30 jours et puis
01:01:56 :de créer une date qui n'existe pas. Donc ça ce serait la difficulté. Donc aprèsqu'est-ce qu'on a ? On en a plusieurs ici qui sont assez similaires là encore qu'on
01:02:06 :confond souvent, on a le choice qui permet de juste récupérer un élément dans uneliste, donc là j'ai mis nombre mais ça peut être autre chose, si vous avez une listede chaînes de caractères ça va sélectionner un élément aléatoire aussi dans une listede chaînes de caractères ou autre, là je l'ai fait avec des nombres parce que c'est
01:02:23 :plus simple. Choices donc là c'est aussi assez facile de retenir les deux, choiceau singulier pour récupérer un seul élément, choices avec un S pour en récupérer plusieursavec K ici qui permet d'indiquer combien on en veut et la seule différence entre sampleet choices et c'est quelque chose que je vois souvent aussi, on confond les deux, c'est
01:02:43 :que sample va vraiment éviter d'avoir des doublons. Donc je pense que si je le lancelà vous allez voir, je vais le lancer plusieurs fois, ah ouais merde je l'avais là, je l'aidéjà lancé. Là vous voyez avec choices on peut avoir plusieurs fois le même élément
01:02:59 :qui est choisi, avec sample non. Donc si on fait un sample de deux ici on aura toujoursdes éléments différents. Donc là encore ça dépend de ce que vous avez besoin de
01:03:10 :faire, si vous faites un tirage au sort par exemple vous allez probablement plus utilisersample à moins que dans votre concours vous considériez que quelqu'un peut gagner plusieursfois, donc voilà c'est vraiment en fonction du cas d'usage. Oui Arnaud oui alors ça effectivement
01:03:32 :ça aussi ça peut être un truc un peu plus avancé, là pour tout te dire c'est le genrede truc que j'ai jamais utilisé de ma vie mais c'est vrai que ça pourrait être destrucs intéressants. Arnaud qui dit qu'on peut mettre des poids avec weights, donc là si
01:03:46 :je mets par exemple ici weights, je peux spécifier une liste de poids pour dire parexemple je veux que le premier soit plus choisi, alors j'imagine que, je sais pas si j'en metspas le même nombre est-ce qu'il va me gueuler dessus, ouais c'est ça, il faut que je mette
01:04:00 :exactement le même nombre, donc on peut dire tac tac tac tac, là je pense que c'est bon,2, 1, 4, 5, ouais. Et là effectivement dans random.choices j'aurai plus de chances d'avoir
01:04:13 :le 1 avec les weights. Ça c'est le genre de truc effectivement qui peut être j'imaginetrès pratique à avoir dans certains cas de figure, perso je ne l'ai jamais utilisé,je ne l'ai pas vu non plus dans les questions Toza, donc pour ça je ne vous en parlaispas, mais c'est bien de me le dire parce que comme ça vous le savez, si jamais vous le
01:04:30 :voyez passer, ça peut être intéressant. Ah oui, Gabriel effectivement. Ouais en fonctionde la chance, de l'attribution du personnage en fait. Ouais ouais ouais, ça c'est effectivement
01:04:44 :un super cas d'usage, Gabriel avait fait un projet Django avec un jeu de rôle, doncil y avait des gens qui étaient en combat etc, et justement effectivement là ça peutêtre un truc, quelle est la chance d'avoir un item ou un truc en fonction d'un personnage,ouais. Wow, ah oui effectivement Simon là, Simon qui dit qu'il a vu la doc sur Uniform.
01:05:15 :Ouais bah écoute là, je ne sais pas s'il y en a qui comprennent le truc dans le chatlà. Floating point rounding in the equation a plus b moins 1 fois random. Ah tiens, c'est
01:05:38 :la nuit. Oui parce qu'après je réfléchis là sur les arrondis, il y a toujours, c'estquoi l'histoire du, il y a ce truc là en informatique là où les nombres sont jamais,il y a toujours un arrondi qui est fait parce que je ne sais plus exactement c'est quoi
01:06:05 :le deal avec tout ça là, mais il y a toujours une, ils sont obligés de faire des magouillesun petit peu en arrière plan parce que ça dépend aussi probablement des langages, parcequ'ils ne peuvent pas représenter exactement les choses comme elles sont dans la puretémathématique, du coup ils sont obligés de faire des arrondis sur certaines choses,
01:06:25 :donc c'est peut-être ça là qui est évoqué dans ce truc du Uniform. Après effectivementcomme je te dis il faudrait voir, ouais il faudrait voir, je pense que si t'as vraimentun cas de figure dans lequel tu veux récupérer un floating, donc un nombre à virgule décimaleentre 0 et 1 et que tu veux vraiment pas qu'il y ait la dernière borne et qu'elle peut
01:06:44 :y être parce que t'as cette histoire là, je pense que ce que tu fais c'est juste àla fin, tu fais un if, tu dis si le nombre c'est 1.0 et ben tu recommences et puis tu
01:06:55 :m'en trouves un autre, je pense que ce serait probablement le, oui c'est ça, c'est effectivementça, c'est le 0.1 plus 0.2 qui donne pas 0.3 mais 0.3 0.0 0.4, c'est exactement ça
01:07:07 :dont je parlais ouais. Effectivement avec la conversion binaire que finalement quandtu prends ça dans le langage, ça parait un truc tout con mais finalement quand tuprends ça dans le langage ordinateur, c'est la merde pour le faire simplement. Donc voilà,
01:07:23 :ah oui c'est ça, c'est ça le random shuffle, je vous disais tout à l'heure que ça retournaitnon, mais je me suis planté entre les dates et ça, c'est que là si vous faites le randomshuffle, là dans ce cas-ci il va modifier la liste en place parce que du coup la liste
01:07:37 :est un objet muable qu'on peut modifier, donc ça c'est comme avec le sort, quand vousfaites liste.sort comme ça, c'est aussi quelque chose que je vois très souvent,
01:07:48 :donc les gens qui écrasent en fait la liste, qui font liste égale liste.sort et là ducoup vous mettez none dans votre liste, ça ça va la trier directement, donc là c'estpareil, si vous faites liste égale comme ça, random.shuffle, vous allez écraser en
01:08:05 :fait parce que ça, ça va modifier directement la liste pour la mélanger, ça va retournernone et donc si vous faites ça, vous allez mettre none dans votre liste. Donc là il
01:08:12 :faut vraiment genre juste faire le shuffle sur la liste et là vous allez voir que leséléments sont tous mélangés. Ok ? Ouais, sorted, sorted, c'est ça, après c'est facile
01:08:25 :de s'en souvenir pour ça, donc ce dont on parle là c'est si vous avez une liste, justementsi je fais un liste shuffle, tiens on va le remettre là, donc là votre liste va être,je vais commenter tout ça, tac, donc là si vous faites ça, votre liste est toute mélangée
01:08:45 :et après si je fais liste.sort et print de liste, tac, là elle est remise dans l'ordreet après on a une autre façon de faire, c'est sorted liste et là si je lance parcontre ça n'a rien changé, parce que là ici il faut effectivement le remettre dansla liste, si on veut que ça soit sauvegardé. Et donc liste égale sorted liste, la différence
01:09:11 :avec ça c'est qu'en fait là quand on le fait sur l'objet, c'est une méthode quiest sur l'objet, donc on l'applique directement à l'objet, alors que quand on fait sortedde liste, on fait juste passer cet élément à une fonction qui nous la trie et il fautdonc la récupérer. Et si on veut pas mélanger la liste initiale, alors ça ça fait écho
01:09:33 :à ce qu'on a vu la semaine dernière, tiens comment, on va voir si vous avez retenu cequ'on a vu la semaine dernière, je sais pas si tu l'avais vu en rediffusion du coup,ouais il y a plein de façons de faire, ouais, parce qu'effectivement là ça va modifier
01:09:48 :la liste originale et donc ce qu'on a vu la semaine dernière c'était tout ce quiest gestion de la mémoire un petit peu, les références, quand on fait une liste,donc on pourrait se dire bon bah tiens je vais faire une liste à shuffler et on vafaire liste, là on fait random shuffle liste à shuffler, et là on affiche notre liste
01:10:11 :et merde ça marche pas parce que tac, vous voyez que là on a la même chose. Parce quequand on fait ça ici en fait on fait pas une copie de la liste, on fait juste direque ces deux noms ici vont pointer vers le même objet en mémoire, et donc quand on
01:10:26 :va faire un random.shuffle on va modifier l'objet en mémoire et les deux noms vontpointer vers cet objet, donc là effectivement on peut faire un copie comme ça, et là vousvoyez que, 1, 2, 3, 5, 4, 1, 2, 3, 4, oui c'est ça ok c'était presque pareil mais
01:10:41 :oui vous voyez là on a vraiment les deux qui sont bien différents, on peut faireun copie aussi comme on l'avait vu avec from copy import copy et faire une copiede la liste comme ça aussi, donc les différentes façons de faire, ça ça va marcher aussi,et deep copy si vous voulez faire une copie en profondeur de la liste, mais ça ouais
01:11:05 :on l'avait vu la semaine dernière. Ok alors, quelle heure est-il, j'ai plus d'eau, okle json ça va être un peu long, on le verra la prochaine fois, mais je vais juste, onva faire une petite révision sur les fichiers et je vais vous montrer un truc aussi qui
01:11:25 :mélange pas mal les gens avec le R plus ici, donc ça c'est tout ce qui est gestion defichiers, je reviens juste, désolé je vais voir le charge, oui effectivement oui, ouitu peux faire ça aussi, donc tu utilises sample, tu lui donnes la longueur et puisil va prendre un échantillon sur la longueur de la liste, donc tu te retrouves avec la
01:11:56 :même chose, mais avec random, c'est une façon de faire aussi. Donc oui, là aussiil n'y a pas, je pourrais aller plus loin justement, on va rester sur une petite révision,je voulais montrer tout ça aussi justement avec le contexte du json mais on va pas avoirle temps, parce que c'est des confusions qui sont faites souvent entre les différences
01:12:19 :entre les fichiers json, les fichiers texte etc. Donc là on a les plus simples pour liredes fichiers, à chaque fois on utilise donc open, puisqu'il faut ouvrir le fichier,on va avoir le chemin vers le fichier, ensuite le mode dans lequel on veut ouvrir le fichieret ça va avoir un impact ensuite sur ce qu'on peut faire avec ce fichier, donc là avec
01:12:45 :les modes c'est assez logique si vous les avez en anglais, R pour read, W pour writeet A pour append, qui veut dire donc ajouter, et c'est ça qu'on va voir à Israel, c'estles plus effectivement. Les plus je vous dirais que c'est, perso j'aime pas trop les utiliser
01:13:02 :parce que justement je trouve que c'est pas forcément explicite, et souvent en fait quandje fais des opérations sur des fichiers comme ça, je vais faire des opérations de lectureet d'écriture à différents endroits, donc ça va être bien séparé. Le plus en fait
01:13:18 :c'est un mode justement plus, c'est un mode qui va vous permettre de faire plusieurs chosesd'un coup, donc là vous voyez je vous l'ai mis ici, donc si on fait R+, ça va permettrede lire mais aussi d'écrire dans le fichier, et c'est là où ça devient compliqué parce
01:13:33 :qu'il faut bien se souvenir de tout, parce que par exemple quand on fait R+, si je mesouviens bien c'est l'équivalent d'un append, c'est à dire que le write par exemple, doncle write ici, il va vraiment écraser tout ce qu'il y a dans le fichier, donc si on avait
01:13:45 :quelque chose dans le fichier, qu'on ouvre le fichier en mode écriture et qu'on metquelque chose dedans, on écrase tout ce qui était dedans et on met cela à la place.
01:13:54 :Ce qui est différent du append justement, le mode A, où là on va ajouter à ce quiest déjà présent dans le fichier. Et le R+, si je ne me trompe pas, c'est donc un
01:14:04 :moyen à la fois de lire, mais aussi si vous le souhaitez, d'écrire, mais d'écrireen mode de rajouter au fichier qui existe déjà, de le créer du coup s'il n'existepas, etc.
01:14:17 :Non, c'est ça, je crois que tu n'es pas obligé de lire avant d'écrire, si je neme trompe pas avec le readfile+, c'est parce que justement si le fichier n'existe paset va le créer, c'est un peu un équivalent entre le W et le A si je ne me trompe pas.
01:14:38 :Après c'est ça en fait, il faut aller voir dans la doc quelles sont les spécificitésde chacun. Si je ne me trompe pas, c'est vraiment juste que ça vous permet de faire
01:14:45 :plusieurs opérations d'un coup, donc dans le sens, ça je suis sûr, c'est que le Wpar exemple c'est pareil, tu vas pouvoir écrire mais aussi lire. Dans le cas de la
01:14:53 :lecture, tu peux juste lire le fichier, il n'y a pas de mode différent. Dans le casdu R, c'est un peu différent parce qu'on peut avoir plusieurs modes, le mode W oule mode A. Donc là comme je te dis, je crois que le R+, si je ne me trompe pas, c'est
01:15:06 :l'équivalent du mode Happen, ça va ajouter à la fin, mais il faudrait aller vérifierla doc pour être sûr. Dans le cas du W, c'est vraiment un mode écriture avec en
01:15:16 :plus la possibilité de lire, et le mode Happen c'est pareil, tu vas pouvoir ajoutermais aussi si tu le souhaites, lire le fichier. Comme je te dis finalement, moi à chaque
01:15:25 :fois, comme je sépare bien les choses en fait, j'ai des fonctions qui vont allerlire, j'ai des fonctions qui vont aller écrire, et ça ne va pas, je ne vais pasfaire les deux en même temps. Ça peut être intéressant après si vous avez, parce que
01:15:38 :moi souvent il y a plusieurs choses qui se passent quand j'ouvre un fichier et aprèsje le ferme ou quand je l'écris, ça va être des choses séparées. Là où ça peut
01:15:46 :être intéressant, c'est si vous faites des trucs très intenses et que vous ne voulezpas à chaque fois justement faire plusieurs opérations. Si vous voulez ouvrir le fichier
01:15:55 :une seule fois avec ces deux modes pour pouvoir faire les opérations à la fois lire etaprès écrire dedans, ça peut être intéressant si vous avez des gros fichiers, que vousfaites des grosses boucles comme ça, pour ne pas avoir à chaque fois ouvrir, lire,refaire un open en write, parce que là ça va faire deux opérations au lieu d'une.
01:16:13 :Donc ça peut être intéressant pour ça, mais c'est des cas assez spécifiques. Doncvoilà, retenez bien pour les questions Toza que le mode plus c'est un mode qui vouspermet de faire plus qu'une seule opération, après si vraiment il vous demande, probablementque ça sera des QCM et que vous pourriez y aller par élimination, sur le R ça m'étonnerait
01:16:34 :qu'il vous mette une question où vraiment il vous demande quelle est la différenceentre le... Est-ce que le R plus il fait un append ou un write, là si c'est une question
01:16:44 :comme ça, à mon avis ça serait un petit peu... Ouais c'est ça, ça va tard lireet écrire sans écraser, c'est ça. Donc c'est effectivement l'équivalent d'un append.
01:16:53 :Je ne me suis pas trompé, mais si vraiment vous avez une question comme ça, ils sontvraiment vraiment chiants. Retenez surtout que c'est un mode un peu plus permissif pour
01:17:03 :ça. Et après le module OS pour enlever ou renommer un fichier, là encore sur les gestionsde fichiers il y a plein d'autres modules qui existent, c'est important de faire, làce que je voulais vous montrer juste c'était le fait que c'est possible avec OS, aprèsvous n'avez pas Tlib aussi qui est plus récent, c'est quand même bien de maîtriser OS parce
01:17:25 :que c'est tellement une librairie qui a été très très utilisée qu'on le voit encoretraîner un petit peu partout, donc c'est bien de savoir que c'est possible et de savoirl'utiliser. Après là encore, comme je vous disais, gestion de fichiers, parcourir des
01:17:37 :dossiers, c'est des trucs qu'on fait très souvent, il y a beaucoup de gens qui ont faitdes bibliothèques assez... il y a même en fait Passlib qui est justement... là pour
01:17:45 :le coup ça a été intégré directement dans Python, donc c'est même pas une bibliothèqueexterne installée, c'est directement dans le langage. Donc voilà, il y a différentes
01:17:53 :façons de faire, ça c'est vraiment les basiques, si vous voulez creuser un peu plus,il y a tout ce qu'il faut en cours sur Doctrine à ce sujet, et là où c'est un peu plusintéressant, ça sera les fichiers JSON, mais là on ne va pas avoir le temps, donc
01:18:09 :on verra ça une prochaine fois, et j'ai vu aussi qu'il n'y avait pas tout le mondeencore qui avait vu, puisqu'on est jeudi là, tout ce que je vous avais mis, là je parlespécifiquement pour les gens en Toza, je vous ai mis pas mal de petites tâches cette
01:18:24 :semaine, et vous êtes encore plusieurs à ne pas avoir tout complété, donc regardezça, si vous avez des questions sur le JSON, j'en ai vu quelques-unes passer, comme jedisais, on y avait répondu, n'hésitez pas à les poser, et puis on verra ça en mentoratplus tard s'il y a encore des questions qui restent là-dessus.
01:18:42 :Et voilà, du coup, est-ce qu'il y a d'autres questions un peu sur tout ça, en général ?Comment va votre vie ? Est-ce que tout va bien ? Est-ce que vous êtes stressé par
01:18:56 :le Toza ? Est-ce que ça va ? Là tout le monde a passé le test, j'ai vu, donc vousinquiétez pas, comme je vous disais, je l'ai dit à plusieurs personnes, c'est souventen fait, c'est ça, il suffit, il y a beaucoup de gens, là j'ai vu dans tous les tests,
01:19:13 :où vous avez peut-être eu 1 ou 2 sur 5, et vous étiez à ça d'avoir 3 ou 4, parceque vous avez, sur un QCM, il y avait 3 trucs à cocher, vous en avez coché 2, ou vousen avez coché 1 en plus qui était pas bon, etc. Et donc, c'est souvent ça le problème,
01:19:32 :c'est, voilà, vous aviez 90% de la bonne réponse, c'est juste parce que vous saviezles trucs, etc. ça comptait faux, et donc finalement ça répété sur 5 ou 6 questions,
01:19:41 :c'est ça qui fait que vous passez de 1 à 3 sur 5. Après voilà, c'est des trucs faciles,c'est juste, voilà, il faut vous remettre dans le bain, il faut revoir ces trucs debase, et puis après voilà, c'est des trucs qui vont revenir assez facilement. Et ce qu'on
01:19:57 :fera plus tard, dans la deuxième partie, vers la fin, ça va être tout ce qui estun peu plus algorithme, exercice de code, etc., on va en faire quand même un petit
01:20:04 :peu prochainement aussi, et où là effectivement c'est un peu plus la logique et tout, maisfinalement ça c'est plus la partie pour passer de 3 à 4, à 4, à 5, pour tout cequi est passé, donc la certification qui est l'équivalent de 3 sur 5, que effectivementlà je crois dans le groupe vous êtes 2 ou 3 à avoir eu, c'est surtout tout ce qu'il
01:20:28 :faut connaître, c'est vraiment la syntaxe, l'utilisation de base de Python, etc., etc'est tout ça qu'on va travailler, donc comme ces trucs-là qu'on a vus ce soir.
01:20:36 :Le Toza François c'est une certification Python qu'on peut faire passer, et on a faitun premier groupe là il y a 2 semaines déjà, ça a commencé le 15 avril, donc c'est pourça, et là on a fusionné les deux sessions parce que PA n'était pas disponible, etil se trouve que tout le monde est disponible aussi pour le Toza le jeudi, donc en fait
01:20:59 :ça fait plusieurs semaines qu'on fait les sessions back-to-back, l'une après l'autre.Alors, je me demande dans les questions, une question à l'entretien, pour trouver un fichieravec la récursion, oui ça c'est l'exemple que je préfère le plus Mathieu, la récursionavec OS c'est un truc horrible avec le wok là, où on ne sait jamais, je déteste ça,
01:21:29 :j'avais des snippets à chaque fois que je copiais parce que je ne me suis jamais penchédessus pour la prendre par cœur et tout, entre les fichiers, les dossiers, les trucs,et finalement avec Pathlib c'est vraiment mieux, on a Glob qui était un module avantqu'il fallait importer, maintenant avec Pathlib c'est directement sur les fichiers,
01:21:47 :donc Glob c'est beaucoup plus facile à utiliser. Pickle, oui Simon, j'ai vu une questionToza là-dessus mais c'était assez générique, c'était en mode en gros à quoi sert Pickle,c'était un truc à peu près comme ça. Perso je l'ai utilisé il y a des très très longtemps,
01:22:07 :je pense qu'aujourd'hui, je ne sais même plus trop, je pense que je l'utilisais quandje ne connaissais pas encore les bases de données et plein de trucs comme ça, et depuisje ne l'ai pas réutilisé donc ça reste en suspens dans ma tête, est-ce qu'il y aencore des gens qui l'utilisent, je pense que ça peut être pratique pour certains
01:22:23 :cas de figure, Pickle c'est un module qui permet de sauvegarder des objets sur le disque,par exemple vous pouvez avoir une classe complexe avec plein d'attributs, méthodes, etc, vousfaites une instance à partir de cette classe et vous allez pouvoir sauvegarder cette instancesur le disque, souvent par exemple on va plutôt passer par du JSON parce que ça dépend
01:22:44 :là encore de plein de choses mais tu vois par exemple si tu es sur du web, tu vas passerpar des API REST avec du JSON, tu vas représenter des datas comme ça, moi quand j'étais enVFX c'est comme ça aussi qu'on fonctionnait parce que finalement Pickle c'est un peu
01:22:57 :obscur, tu vois tu as un fichier sur le disque, tu ne sais pas ce qu'il y a dedans, un JSONfinalement quand tu veux sauvegarder les positions de la lumière dans ta scène, tu sauvegardesdes coordonnées XY dans un dictionnaire que tu mets dans un JSON, n'importe qui peut
01:23:08 :l'ouvrir, peut le voir, tu peux mettre ça sur Git, c'est beaucoup plus facile à manipulerqu'un Pickle où c'est un objet qui est, je ne sais plus comment c'est stocké exactement,c'est peut-être du binaire ou un truc comme ça mais c'est moins facile.
01:23:21 :Et écriture en binaire dans un fichier, perso aussi je n'en ai jamais eu besoin, aprèslà encore ça peut être pratique je pense pour certains domaines.
01:23:30 :Si là on va voir comment on arrive à suivre tout le monde justement, là on a Kevin quia fait les closers comme je vous avais dit, qui m'aide en ce moment pour gérer un peutout ça parce qu'il y a beaucoup de trucs en ce moment, donc ça va dépendre un petit
01:23:52 :peu mais probablement dans les prochains mois.Ah tiens, intéressant ça, effectivement.Clint qui nous dit que c'est pratique pour sauvegarder un modèle de Machine Learning,tu vois je ne savais pas, j'ai fait un tout petit peu de Machine Learning en testant PyTorchtous ces trucs là, mais pas assez pour savoir ça.
01:24:18 :Pour stocker du texte, ça dépend de ce que tu appelles texte, si tu veux sauvegarderun roman ou des trucs comme ça, un fichier texte c'est mieux.
01:24:30 :Si tu veux sauvegarder, ça va dépendre vraiment du cas de figure.Par exemple des fichiers de sous-titres ça va être un fichier .srt qui va être un fichier
01:24:40 :texte avec juste un format un petit peu différent avec les timecodes, mais tu pourrais aussile stocker en JSON avec des timecodes dans les clés, en fait ça va vraiment dépendredes cas de figure à chaque fois.
01:24:51 :C'est pour ça qu'il n'y a pas une façon, il n'y a pas un truc universel, ça va dépendredes industries, des entreprises, même dans une même industrie vous allez avoir des entreprisesqui vont travailler différemment, donc c'est vraiment au cas par cas, c'est pour ça quec'est bien un peu de savoir faire plusieurs choses.
01:25:08 :Après ce n'est pas des trucs difficiles, si vous arrivez dans une entreprise, vousn'avez jamais touché à Pickle de votre vie, ça prend 10 minutes, c'est pour ça qu'ilne faut pas trop s'en faire.
01:25:19 :Celui que je montre le plus c'est JSON parce qu'il est devenu omniprésent partout, quece soit en web, en sauvegarde, dans plein de trucs divers et variés, mais là encoreaprès ce qui est important c'est surtout tout ce qui est manipulation de données derrièredans le cas de JSON.
01:25:37 :Parce qu'un JSON c'est un dictionnaire finalement, donc après ce qui est important en Pythonc'est pas le JSON, c'est savoir manipuler un dictionnaire finalement.Et après le processus d'écriture, de récupérer, ça c'est 2-3 lignes de code et la librairieJSON.
01:25:52 :Bon bah écoutez s'il n'y a pas d'autres questions on va s'arrêter là, je vais mettreune note.Tu dois utiliser ce dic de nombreuses fois.
01:26:08 :Ouais bah c'est ça, après vraiment il faut voir en fonction des cas de figure, si c'esttoi qui mets en place ça, il faut voir, ça fait un peu peur des fois le JSON au débutparce qu'on peut vite avoir des trucs un peu imbriqués, après il faut vraiment y aller
01:26:26 :comme tout, pas à pas, j'ai souvent ça là par exemple quand je faisais les trucsavec ChatGPT, ils vous retournent des réponses avec des trucs des fois en arbre comme ça,bon en fait il faut juste y aller, donc après quand on récupère ça on fait crochet 0,crochet 1, machin, point get, parce qu'après c'est un dictionnaire, point truc, et finalement
01:26:44 :on a un truc long comme ça pour arriver à ce qu'on veut, mais voilà ça fait peur,mais finalement il suffit de se balader là-dedans.
01:26:50 :Oui jeudi prochain, ah oui c'est un jour férié, oui oui, on a prévu un mentoratjustement avec Kevin qui va faire une introduction à la cybersécurité, ça va être assez intéressantje pense, parce que c'est un sujet qu'on n'a pas beaucoup abordé en général sur Doxtrink,donc je vous conseille de, on va voir effectivement, je sais pas si c'est une bonne chose ou pas
01:27:14 :que ce soit un jour férié, peut-être parce qu'il y aura plus de monde ou alors à l'inversetout le monde sera parti je sais pas où, mais j'avais pas pensé à ça.
01:27:23 :Aux doigts mouillés là vous êtes plutôt du genre à pas être là parce que c'est fériéou au contraire vous serez là parce que c'est férié, que je commence à prévoir là,s'il faut pas qu'on décale en fonction de ça.
01:27:37 :Ça va me permettre de voir.Ok bon, ça a l'air d'être assez positif.Après ouais pour ceux qui peuvent pas être là, ça sera en rediffusion bien sûr.
01:27:49 :Ah oui merde, je suis en mode, j'avais pas vu que j'étais en mode cascade d'écran.Non, non the crawl, c'est un essai tu veux dire, passer l'évaluation.
01:28:06 :Parce que dans le Toza il y a l'évaluation que tout le monde a passé dans ceux qui sontsur le programme, un test, ouais.Non, t'as un petit test, t'as un petit test, t'as un petit test, t'as un petit test,t'as un petit test, t'as un petit test, t'as un petit test, t'as un petit test,
01:28:24 :Non t'as un test gré gratuit, c'est deux, trois questions je crois sur le site.Ça ne va vraiment pas très loin, je crois que c'est toujours les mêmes questions doncc'est vraiment juste pour voire à peu près à quoi ça ressemble.
01:28:37 :Non, mais les évaluations, ça, les évaluations nous coûte des crédits aussi de notre côté,en fait tu peux faire passer évaluation ou certification.L'évaluation est un peu moins cher que la certification qui coûte 89 euros si je me souviens bienparce que t'as pas à payer pour quelqu'un qui vérifie en fait, un examinateur.
01:29:05 :Mais c'est quand même un coût en plus, donc à voir, peut-être qu'on le proposera,ça peut être un truc où je réfléchis un petit peu à ces trucs là,est-ce que ça peut valoir le coût de faire passer le Tosa juste comme ça en libre.
01:29:19 :Je réfléchis à ça, il faudra voir.Bon bah écoutez, si c'est tout bon, on va s'arrêter là.Je vais arrêter l'enregistrement.William, il faudra un ordi.
01:29:44 :On en reparlera de tout ça là, ce dont vous avez besoin,mais si c'est une tablette genre iPad et tout ça, ça marchera pas.Il faut vraiment un ordi avec système d'exploitation.
Aucune occurrence trouvée pour « ».