Session du 15 août 2024 à 20h00
TOSA & Certifications
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
On parlera de modules natifs (notamment re pour les regex).
00:00:00 :Et voilà, normalement c'est bon, participant, et ça enregistre.Bon, du coup là c'est une petite question, elle est orientée TOSA, donc ça va être vraiment des choses de Python, qui sont natives avec Python, on va dire parfois basiques.
00:00:24 :Est-ce que vous êtes tous chaud à fond chaud sur les argz et les kvarks ou pas ? On va revoir vite fait.Lila tu vas revoir.
00:00:33 :Moi je les connais mais ça fait longtemps que je ne les ai pas utilisées.Je les ai utilisées quand j'ai commencé la formation moi-même, mais j'ai complètement oublié.
00:00:49 :Bon, parce que ça c'est le genre typique de questions que vous allez certainement avoir au TOSA.Les argz, vous les retrouvez dans tous les frameworks avec Django, c'est pareil, vous allez en avoir dans vos fonctions, dans vos classes.
00:01:03 :En fait ici, ce que j'écris, ça permet de rendre les fonctions flexibles.En fait argz, ça permet de prendre un nombre d'arguments positionnels aléatoires.Là, c'est un exemple, ça explique bien.
00:01:17 :Ici, j'ai bien mis mon paramètre argz.Ici, je boucle dessus pour chaque nombre.Regarde, c'est des nombres.Pour chaque nombre, j'ai fait une faute ici.
00:01:29 :Pour chaque nombre dans argz, à chaque fois on va cumuler du coup ce nombre à somme.Par exemple, vous pouvez très bien passer 1, 2, 3, autant de chiffres que vous voulez.
00:01:42 :Là, ça n'a plus fait 30.Mais en gros, vous pouvez en mettre autant que vous voulez à l'heure positionnelle.Ça va ?Allo, Gab ?
00:01:55 :Ouais ?Donc, si je comprends bien, argz, c'est un tuple ?Ouais, ouais, ouais, c'est ça, ça va être un tuple, ouais.Ok.Je ne savais pas ça.
00:02:08 :C'est un tuple, et du coup, ça permet de passer le nombre d'arguments positionnels que tu as envie.Tu peux en mettre 100 si tu as envie, il n'y a pas de problème.
00:02:18 :Ok, d'accord, d'accord.Voilà, donc c'est bien de savoir ce que ça fait en gros.Par la suite, pour les frais moindres, tout ça, il faut bien le maîtriser.
00:02:27 :Mais Portoza, s'il vous demande ce que ça fait, ça vous permet de passer un nombre variable d'arguments positionnels.Là, ici, je l'ai fait pareil avec le nombre de mots.
00:02:38 :Donc là, on peut afficher le nombre de mots qu'on veut, envoyer le nombre de mots qu'on veut.J'en envoie ici 1, 2, 3, 4, 5.
00:02:47 :1, 2, 3 ici.Voilà, la fonction va fonctionner tout pareil.C'est juste qu'il y a plus de mots, elle va les prendre en compte.Voilà.
00:02:54 :Donc ça, c'est le argz.Ici, j'ai mis mots, c'est parce que argz, en fait, c'est une convention, mais on n'est pas obligé de l'appeler argz.
00:03:02 :On peut très bien l'appeler comme on veut.Moi, je l'ai appelé ici, mots, juste pour vous montrer.Voilà.Mais je pense que c'est bien de prendre l'habitude de l'appeler argz, comme les conventions.
00:03:11 :Mais c'est juste pour vous montrer qu'en fait, là, vous pouvez l'appeler comme vous voulez, il n'y a aucun problème.Oui, il faut juste déclarer l'étoile.
00:03:18 :Comme quoi, on passe comme un pointeur.Il faut avoir sa petite étoile.Vas-y.Est-ce que tu m'as parlé ?Non, j'ai cru.Oui, oui, il a parlé, mais il a coupé son micro après.
00:03:42 :Oui, Gab, pardon.En fait, je voulais sur créer phrase là, au niveau de là où tu as fait l'appel.Ouais, ouais.Créer phrase, mots.Là, c'est…Ok, c'est…En fait, je veux savoir les arguments, comment tu les as passés, parce que je vois virgule.
00:04:08 :Ben, en fait, ici, c'est positionnel.Donc, en fait, j'ai mis un nombre d'arguments qui va être variable.Ici, je peux te rajouter très bien.Coucou, en plus, par la suite, c'est variable, en fait, tu vois.
00:04:21 :En plus, ma écharpe, c'est pas mal, ça te le met.Donc, ici, j'ai bien ma fonction avec mon arge, mais que j'ai appelé mot juste pour vous montrer qu'on peut l'appeler comme on veut.
00:04:29 :Ok, ok, ok.Donc, je peux en mettre autant que je veux.Ici, on voit bien que dans mot, il y a ça, ça, ça, ça, ça.
00:04:36 :Donc, mots prennent tout ça, bonjour, à, tous, tout, en fait, quoi.Ouais.D'accord, ok.Voilà.Donc, tu peux passer autant que vous voulez.C'est le but des arges, en fait, c'est d'en passer autant qu'on veut.
00:04:47 :D'accord.Alors, donc là, on était sur l'argument positionnel.Donc, on les met comme ça.Maintenant, quoi, ça permet de passer un nombre variable d'arguments nommés.
00:04:57 :Donc, ici, ça va pas être une astérisque, ça va être deux astérisques.Et, en fait, quarks, c'est un dictionnaire, du coup.Vous allez comprendre, du coup, on peut boucler très bien.
00:05:08 :Donc, pour chaque clé, pour chaque valeur, il quarks.items.Donc, c'est un dictionnaire, on peut utiliser les items.Et ici, je vais printer ma clé et ma valeur.
00:05:18 :Donc, là, en argument nommé, je vais avoir le nom.Ça va être Dupont H30 Ville-Paris.Je peux en mettre d'autres, je ne sais pas.Je peux avoir...
00:05:29 :Je ne sais pas ce que je peux avoir.Ce qu'il me fait, lui, on s'en fout.Ville-Paris, on peut mettre H, nom.Même si j'ai le prénom plus ou moins, ce n'est pas grave.
00:05:39 :Prénom est égal à...Hop.Asylah.Enchaîne le caractère.Voilà.Hop.Ici, je vais me faire un print.Hop là.Et en fait, c'est un peu le bazar parce que j'ai plusieurs choses.
00:06:01 :Ça commence là, nom Dupont, H30, Ville-Paris, prénom Asylah.Voilà.En fait, vous passez autant d'infos nommées.Donc, vraiment, nom égal, H égal.Donc, à chaque fois, vous les nommez.
00:06:15 :Et en fait, après, vu que c'est un dictionnaire,vous pouvez boucler dessus en faisant un quark.item, par exemple.Ça, ça va ou pas ?Oui, ça va quand même, ça va.
00:06:27 :OK.Donc, c'est la différence entre les args et les quarks.Il y en a un, c'est positionnel.Mais juste, tu peux revenir sur l'exemple ?
00:06:36 :Ce que je trouve étrange, c'est le fait qu'il n'y a pas de clé valeur ici,dans l'exemple, avec le prénom que tu as rajouté.Non ?
00:06:46 :Il s'affichait, si je m'étais...C'est-à-dire que les valeurs, c'est que...C'est-à-dire que le nom, c'est qui, et la valeur, c'est Dupont.Ah, oui.D'accord, ça marche.
00:06:59 :C'est bon.Excuse-moi, je n'ai pas la question, mais c'est ça.D'accord.T'as ta clé, t'as ta valeur.Est-ce que je peux faire un...Hop, on va l'afficher comme ça.
00:07:14 :Par contre, c'est le bordel, parce que j'affiche plein de trucs.Mais ici, tu le vois, mon print, je le fais ici, mon print.Quand tu prints tes quarks, en fait,eh bien, t'as bien à ton dictionnaire, toutes les valeurs.
00:07:24 :Il est là.Ouais, ouais, d'accord.Voilà.Merci.Voilà.C'est dommage qu'il soit pas l'Eric.Voilà, après, c'est pareil, il faut avoir des quarks.Ici, j'ai mélangé les deux.
00:07:39 :J'ai un argument nom qui va être obligatoire.Mais ensuite, je vais avoir intérêt qui est un args.Donc, j'ai fait exprès de l'appeler autrement,mais en fait, c'est un args.
00:07:53 :On peut l'appeler comme on veut.Ici, info personnelle, ça va être mes quarks.Et donc, je ne sais plus, j'avais mis les args.Et ici, s'il fait mes quarks, hop.
00:08:07 :Voilà, donc vous pouvez mélanger les deux.D'abord, les args.Ensuite, les quarks.Et les quarks.Donc là, j'imprime ici mon argument qui est là.Donc, mon nom.
00:08:18 :Enfin, je print.Ensuite, je vais avoir tous mes args que je vais utiliser ici.Et puis après, je vais avoir mes quarks que je vais utiliser en dessous.
00:08:24 :Enfin, voilà, peu importe.Donc, c'est d'abord les args.Et ensuite, les quarks dans une fonction.Voilà.Et si je me rappelle bien, les quarks ne seront jamais au début.
00:08:34 :Si je me rappelle bien.Ouais, c'est ça.Il faut toujours les laisser à la fin.C'est ça.Si je me rappelle bien.Je regarde un truc.
00:08:41 :Est-ce que je peux le faire comme ça ?Et si je fais ça ?Attends.Est-ce que je peux faire ça ?Un truc bidon.
00:08:59 :C'est l'erreur MD.Parce qu'en fait, on ne peut pas avoir d'arguments...Enfin, les arguments positionnels sont entre mes quarks, en fait.Pour le préciser, dans le texte, je fais un écho.
00:09:22 :Donc, on est d'accord que du coup, ici, ça ne marche pas.Parce qu'en fait, il faudrait que j'inverse.Ici, prénom, c'est positionnel.Oui, ça, c'est pour l'initialisation.
00:09:31 :C'est pour le truc facultatif.C'est qu'il faut le laisser à la fin.C'est pareil pour les args et quarks.Positionnel à l'avant, nommé après.Donc, c'est pareil à l'avant, puisque args, ça va du positionnel,et quarks, c'est nommé.
00:09:47 :Donc, on les met après.Voilà.Donc, ça, c'est des choses qu'on ne peut pas faire.On ne peut pas faire ça.Voilà.Donc, ça, c'est des choses à retenir.
00:10:00 :Alors, c'était plus pour Eric.Peut-être qu'il revisionnera la vidéo.Mais, enfin, vous, du coup, si vous avez un doute,donc args, quarks.Est-ce que c'est bon, tout ça ?
00:10:11 :Et l'ordre args, quarks, c'est comme ça,ou on peut les inverser ?Ah non, non, non.Je vais te faire un test.Regarde, genre, si j'efface mes quarks, ici.
00:10:25 :Non, non, tu ajoutes juste un étoile et tu supprimes.Oui, oui, même, ouais.Tiens, si j'ai eu ta raison, je ne vais pas me m'embêter.
00:10:33 :Ici, je vais mettre une étoile, alors on met deux,parce qu'on peut les appeler comme on veut,mais ça ne passe pas.Ouais, ouais, d'accord, ouais.
00:10:39 :D'accord.En plus, ils créditent bien plus.Ouais.Enfin, ils chargent, ils créditent.Voilà.Je ne sais pas s'ils poseront la question,mais voilà, il faut bien retenir qu'on peut les appeler vraiment comme on veut.
00:10:51 :Ici, quarks, je n'ai pas le mot.Enfin, voilà.Mais il faut savoir qu'il y a un ordre,et que là, ici, on va avoir un tuple,et ici, on va être sur un dictionnaire,donc on va pouvoir boucler dessus comme un dictionnaire.
00:11:02 :Je crois que j'ai eu des questions dessus, d'ailleurs.C'est bon pour vous ?Pour les quarks ?Pour moi, ça va.C'est nickel.Ok.Ok.
00:11:14 :Une question que je n'ai pas...que j'ai pensée cette semaine.Elle n'était pas cool,parce qu'en fait, ça, c'est le genre de truc qu'on fait maintenant.
00:11:27 :C'est soit l'IA, soit notre IDE qui va le générer.Les docstrings, ils piquent.Et ici, en fait, la docstring...Moi, j'ai eu une question.Il nous donnait une fonction dans le Toza,et il fallait écrire la docstring de la fonction.
00:11:43 :C'était au format qu'on veut,parce qu'il y a plusieurs formats possibles de docstrings.Là, c'est le format Google.C'est le plus répandu, je crois.Et je trouve que c'est le plus simple.
00:11:54 :En fait, ça marche comme ça.Vous avez votre fonction.Là, j'ai mes paramètres.Et ici, j'ai ce qu'elle retourne.Si on oublie vraiment la docstring.
00:12:05 :J'ai mes paramètres.J'ai ce qu'elle retourne.Par contre, dedans, on va lever une erreur.Si jamais on n'a pas d'entier,ou de faute, ou de...
00:12:23 :Ah, nombre décimal, excusez-moi.Force de parler avec des mots anglais.Donc, en fait, dans votre docstring,il faut toujours repenser ici.Donc là, on met un titre en docstring.
00:12:33 :Ici, on met un peu plus de détails.Et ensuite, on met nos arguments.Donc là, l'argument n°1,c'est un int ou un float.C'est le premier nom mentionné.
00:12:44 :Ici, n°2, int ou float.Et ici, ce qu'on retourne, qui est là,on va avoir en retour, en fait,un int ou un float.Et bien sûr, ici, c'est l'erreurqui va être levée, qui est ici.
00:12:57 :L'exercice qu'ils vont vous donner au Toza,si vous l'avez, en soi, il n'est pas compliqué.C'est vraiment écrire une docstring.C'est juste penser à mettre un petit titre,une petite description, les arguments,et puisque ça retourne.
00:13:13 :Je ne suis même pas sûr qu'il y ait le raise à paramétrer.Est-ce que pour les docstrings, c'est bon ?Je ne sais pas s'il faut passer beaucoup de temps là-dessus,mais pour moi, ça devrait aller.
00:13:25 :Est-ce que vous avez des questions ?Est-ce que vous en faites souvent ou pas ?Moi, je n'utilise pas, sincèrement.Surtout, j'utilise le copilote.Oui, je sais. C'est pour ça que je dis ça.
00:13:38 :C'est que moi aussi...Oui, moi, les docstrings.Mais du coup, ici, comment tu l'as généré ?C'est juste mettre les trois codes ?Ou il y a une technique pour mettre ?
00:13:52 :Non, il y a une extension.Et pareil, je pense, avec le Picharm, il le fait,si je me rappelle.Alors, moi, tu peux le faire avec copilote.
00:14:02 :Moi, quand j'ai besoin de générer, c'est avec copilote.Mais, qu'est-ce que j'allais dire ?Il faut savoir, pour le Toza, l'écrire soi-même.Voilà, c'est sûr, c'est ça que je voulais dire.
00:14:17 :Pour le Toza, vous l'écrivez vous-même.Et vous n'avez pas le droit d'utiliser copilote, bien sûr.C'est votre écran, il est figé.Il n'y a pas un moyen.
00:14:26 :Non.Tu peux trouver une faille pour l'utiliser.J'aimerais bien.Du coup, Gab, ici, par exemple,disons que si je mets les trois codes, juste,et je mets un commentaire dedans, ça va...
00:14:47 :Je ne sais plus comment il marche, ça ira, certes.Je crois que moi, à la base, j'ai essayé de faire un truc de flemmard aussi.
00:14:52 :Je vais mettre une petite description.Mais non, ça ne va pas être vraiment utiliser un format valide.Donc moi, le format Google qui est vraiment le plus simple possible,c'est le titre, la description, en args, le retournes.
00:15:07 :Je ne suis même pas sûr qu'il y ait un raise dans leur exemple,mais je ne me souviens plus, donc au cas où.Donc voilà.
00:15:13 :Entraînez-vous à vous créer une docstring.À la main, en fait.Ouais, faites-la à la main, ouais.Faites-la à la main, c'est une question...J'ai eu le droit.
00:15:25 :Je pense qu'eux, je ne sais pas, là, j'ai fait des tests,mais je ne sais pas trop comment ils font,mais eux, en fait, ils doivent avoir des asserts,en fait, des tests qu'ils font,qu'ils voient que vous avez bien choisi votre docstring.
00:15:36 :Donc là, j'en ai fait des asserts.Donc là, ça passe, mais je pense qu'eux, ils ont un système comme ça.Voilà, je l'ai écrit là.
00:15:43 :Donc...Accepté.Est-ce que ça se connecte ?J'ai accepté, mais...C'est bon.C'est bon.Du coup, pour être sûr, ça peut être une question aussi.
00:16:05 :Donc là, c'est si jamais vous êtes...ils vous posent la question,comment afficher, en gros, ce qui est dans une docstring par rapport à une fonction.
00:16:13 :C'est ici, c'est donc là le nom de la fonction,qui est là, accéder au nombre.Ici, c'est le point doc.Si vous faites le lecture, en fait, ici, j'affiche bien ma docstring.
00:16:25 :Ça peut être une question aussi.Je pense qu'elle peut facilement tomber.Est-ce que tu peux, s'il te plaît, répéter ça ?En gros, vous avez donc là...
00:16:36 :Imaginez, donc là, la docstring, elle est écrite.Imaginez qu'ils vous donnent une fonctionoù ils vous disent, ben, j'ai une fonction.Comment faire pour afficher la docstring qui correspond,la documentation, entre guillemets ?
00:16:50 :Et bien, en fait, c'est pas dur.Vous faites le nom de la fonction, point,the underscore doc, the underscore.Et en fait, ça, ici, ça va afficher votre docstring.
00:17:02 :Ou la docstring, peu importe.C'est une fonction en général.C'est pas forcément la vôtre.D'accord.Et si tu exécutes, là, cette fonction ?Là, en plus, il n'y a que ça.
00:17:16 :Tu vas voir, il n'y a que ça.Le reste, il n'y a pas de print.J'ai bien ma docstring qui s'affiche.D'accord.Voilà.Retenez-le, parce que ça, vous...
00:17:26 :Je pense que c'est fort possible de l'avoir aussi.En fait, sur 35 questions, je n'ai pas tout retenu,mais ça me dit peut-être quelque chose.
00:17:34 :Mais, voilà.Donc, ça peut être écrite.Et aussi, comment afficher une docstring pour une fonction,c'est ici, le doc.Voilà.Est-ce que c'est bon ou pas ?
00:17:46 :Et avec un QCM ou avec des choix multiples ?Le doc, je pense que ce serait plus un petit QCMou un choix multiple, je pense, oui.
00:17:54 :D'accord.Et par contre, ici, ça, il vous donne un terminal.Enfin, vous avez une espèce d'IDE,un terminal qui vous donne un terminal.Donc, vous avez un terminal qui vous donne un terminal.
00:18:05 :C'est une espèce d'IDE sur votre indicateur.Et puis, votre fonction va être comme ça.Et là, ils vont vous dire, écrivez-moi la docstring.D'accord.Voilà.
00:18:17 :Est-ce que c'est bon ou pas ?Et là, une question, une question grave.Ouais.La doc, on la met dans la fonctionou on peut la mettre en dehors de la fonction ?
00:18:29 :Je veux dire en haut, juste avant le def.La docstring ?Oui.Non, vous la mettez en haut, ici.Toujours à l'intérieur de la fonction ?
00:18:38 :Toujours à l'intérieur de la fonction, ici en haut.D'accord.Mais c'est pratique pour tous les projets.De toute façon, je ne sais pas, par exemple,est-ce que j'en ai là, RPG, Models,sur les ennemis ou sur les joueurs,est-ce que j'en ai mis dans les docs ?
00:18:54 :Ouais, voilà.Non, voilà, dans les méthodes VGDM et docstring.D'accord.J'aime bien pratiquer ça.Vous voyez, là, c'est par exemple...Là, j'ai mon titre, j'ai la petite description,puis après, ARS request,donc c'est du Django, donc j'ai une HTTP.
00:19:11 :Weapon, c'est ton objet Weapon, voilà.Et puis, est-ce que ça retourne ?D'accord, ça marche.Juste une remarque sur RPG,c'est un langage de programmationavec lequel j'ai passé 6 ou 7 mois.
00:19:24 :De quoi ?RPG, le GAP3, c'est un langage de programmation aussi.Ah, je ne savais pas.C'était mon projet en Python,mais je ne connais pas le langage en soi.
00:19:34 :Non, le RPG, c'est un langage de programmation.C'est ancien, mais c'est similaire au COBOL,mais un peu différent.Je ne connaissais pas.Ce que j'ai vu, RPG, ça m'a rappelé.
00:19:49 :J'ai pensé à ça.Je ne sais plus s'il posait quelque chose par rapport à ça,mais ça serait un peu piège.Les propositions d'amélioration Python,j'y pensais, parce que ça, les docstrings,on le retrouve là-dedans.
00:20:05 :En fait, Python, régulièrement, il sorte des...Je vais agrandir.Voilà.En fait, c'est des propositions d'amélioration pour le langage.C'est un peu gravé dans le marbre.
00:20:22 :C'est des choses qu'il faut respecter.Les docstrings, ça vient de la 257.Je ne sais pas si c'est Coca-Lana,mais c'est pas ce que j'y pense.
00:20:31 :La plus connue, je pense que c'est la PEP-8.Elle donne des instructions par rapport à Python,des choses à respecter.Normalement, par exemple, c'est plus le maximum d'espace.
00:20:48 :Il y a plein de choses.Essayez de vous trouver un petit...Ça, je vous la mets du coup tant que j'y pense.Ça, un petit résumé de ce qu'est en gros la PEP-8.
00:21:03 :Il me semble que j'avais une question passée dessus.Il me semble.Je ne suis pas sûr à 100 %, mais voilà.Par rapport aux docstrings, c'est la PEP-257.
00:21:17 :C'était juste pour information,mais du coup, ça peut faire penser à la PEP-8.Est-ce que c'est bon pour les docstrings ou pas ?Oui, c'est bon.
00:21:23 :C'est bon.Ok, super.C'est le truc qu'on a tous la flemme de faire, qu'on ne ferait jamais,mais que, du coup, moi, je délègue à chaque GPT ou à copilote.
00:21:32 :Un peu comme Aoud, il le fait aussi.Exactement.Est-ce qu'on va pas...Ça, on s'en sauvegarde pour la fin.Ça, c'est un peu chaud,mais j'ai une question là-dessus.
00:21:46 :On sauvegarde pour la fin.Qu'est-ce que j'écris ?Ouais, ok.Le module OS.Il y a des questions, trois dessus.Vous le connaissez ou pas tous ?
00:21:56 :Vous l'avez déjà utilisé un petit peu ou pas ?Un petit peu,mais à l'aide de copilote,c'est un GPT.Ouais, ouais, ouais.Il a tendance à être remplacé...
00:22:07 :Alors, attendez, je vous envoie un lien.Il a tendance à être remplacé...Il a tendance à être remplacé...Alors, attendez, je vous envoie un lien.
00:22:14 :Il a tendance à être remplacé...Je l'ai mis où ?Je l'ai mis où ?Ah, voilà.Par passlib, quoi.Ouais, ouais, c'est ça.Je suis en train de vous chercher un passlib.
00:22:29 :Si vous voulez vous y faire,il y a un petit...Il y a un article sur Docstring.Voilà.Ça a tendance à être remplacé par passlib,mais c'est utilisé largement encore.
00:22:40 :Je sais que...Je sais que dans...Là, ici, moi, j'utilise Wagtail, par exemple.C'est Wagtail.Est-ce que j'ai un navigateur ?Non, je n'ai pas de navigateur en haut.
00:22:53 :Il est où ?Là.Hop.Je vais vous montrer ça.Dans Wagtail,pour ceux qui utilisent, par exemple, Django,ça ne va pas être facile d'utiliser,mais dans les settings de Wagtail,eux, ils utilisent OS.
00:23:08 :Donc, ça ne réagit pas tout à fait pareil,parce que moi, je ne sais plus,j'avais des façons de faire avec Django.Le jour où je suis arrivé avec Wagtail,ça plantait, ça ne marchait pas,et en fait, c'est parce qu'ils utilisent OS.
00:23:20 :Donc, en fait, OS, il n'est pas abandonné.Il tourne encore sur un gros truc comme Wagtail, par exemple.Donc, c'est bien de le connaître.C'est bien de le connaître.
00:23:30 :Et du coup, OS...Donc, OS, ici,c'est les principales...les principales fonctions.Donc, getWBD, c'est pour avoir le répertoire courant.Oui, oui, c'est ça.Voilà.
00:23:46 :Donc, vous allez avoir des questions dessus.Moi, j'en ai eu sur OS, peut-être.Pour savoir si un fichier existe,vous pouvez faire if os pass.exit.
00:23:54 :Donc, c'est pass.exit.Je n'ai pas eu de programme à écrire, je crois,mais c'était juste des questions,genre, comment vérifier qu'un fichier existe avec OS.
00:24:03 :Donc, ici, c'est os.pass.exit, par exemple.Voilà.Vérifier si c'est un fichier et pas un dossier.Donc, os.pass.isfile.Voilà.Normalement, si je fais mon print,là, il me retourne bien false.
00:24:17 :C'est ça.Ne vous faites pas du bêtise.Donc, c'est bien isfile, c'est pour vérifier si c'est un fichier.os.mkdir, c'est pour créer un dossier.Supprimer un fichier, c'est os.remove.
00:24:31 :En fait, ça parle de soi, c'est pas très compliqué.Il faut juste les retenir.Supprimer un répertoire vide, c'est os.rmdir.Et pour supprimer des répertoires, mais en cascade,comment on peut dire ça ?
00:24:42 :Je l'avais écrit en mode récursif.En mode récursif, ouais.C'est os.removedir.Mais il faut que les répertoires, ça vide, surtout.Sinon, ça ne marche pas.
00:24:51 :Ce module est bien clair dans la formation de Thibault.Ah ben oui, c'est vrai qu'il y en parle beaucoup.Il a tout expliqué de ces notions.
00:25:03 :Ok.Os, si vous n'êtes pas chaud à 100%, revoyez-le bien.Là, je mets les principales fonctions.Il y a os.rename pour renommer un fichier.C'est la liste des fichiers.
00:25:13 :On a os.listedir.Si jamais il y a une petite question sur Shuttle,je pense qu'il peut en mettre une, mais moi, je ne m'en souviens pas.
00:25:21 :Si vous voulez supprimer un dossier avec des répertoires,si vous voulez supprimer un dossier avec des fichiers dedans,avec OS, vous ne pouvez pas.De tête, on est quasiment sûr.
00:25:34 :Parce que là, par exemple, os.remove.rmdir,ça ne marchera pas si il y a un fichier dedans.Vous faites carrément un Shuttle.Donc là, c'est le module Shuttle.rmtree, nom du dossier,
00:25:45 :et là, ça le supprime.Et c'est direct.C'est vraiment supprimé, quoi.Voilà.C'est plus radical.Voilà.Donc, vous avez mis l'article Airpass Libre.Je me souviens pas avoir eu de questions sur Airpass Libre,mais en tout cas, c'est possible.
00:26:01 :Et sur OS aussi.Est-ce que OS, du coup, serait bon pour ne pas passer trop de temps ?Je pense que ça devrait aller.Dites-moi, si jamais c'est bon ou pas.
00:26:11 :Random.Ça, il y a des questions sûres et certaines aussi.Parce que je les ai eues.Donc, faut pas se faire avoir.Donc là, vous avez, avec le module Random, il y a Random.random.
00:26:30 :Donc, ça retourne un flot.Entre 0 et 1, exclu.Parce qu'ils aiment bien poser des questions de piège aussi.Entre 0 et 1, exclu.Random.rending, ça vous retourne du coup...
00:26:40 :Donc, vous bornez un A et B, entre 1 et 10, ici.Et le 10, il est inclus.Voilà, c'est ça.Ici, vous avez Render Range.
00:26:53 :Donc, vous mettez ici, du coup, à début, une fin.Comme un peu avec A et B.Mais vous pouvez mettre ici un step.Voilà.Et là, ici, c'est exclusion, en gros, du deuxième chiffre.
00:27:06 :Le dernier.Donc là, il n'était pas exclu.Je sais, c'est un peu chiant.Mais moi, je crois que j'ai vu des questions là-dessus.Donc, retenez bien Random.Rending, Render Range.
00:27:18 :Sur Shuffle, c'est possible aussi.Shuffle, vous allez avoir une liste.Donc là, ici, j'ai ma liste que j'ai appelée séquence.Là, pain, peur, jambon, je fais un shuffle.
00:27:30 :Ici, j'ai beurre, jambon, pain.C'est mélangé.Voilà.Pour choisir des...Je peux choisir au hasard un élément dans une liste.Donc, ici, j'ai ma liste que je passe ici.
00:27:42 :K, c'est le nombre d'éléments.Eh bien, on choisit bien un élément au hasard.Voilà.C'est toujours le même.Je ne sais pas si c'est normal.
00:27:51 :Ça ne met pas au hasard.Ça me paraît bizarre.Si, c'est bon, c'est au hasard.Voilà.Donc, Random, très, très utile.En plus, pour vos programmes.
00:28:04 :Mais est-ce que c'est bon pour Random ?Mais vraiment, soyez au paix là-dessus.Est-ce que vous êtes tous déjà au paix dessus ou non ?
00:28:12 :Moi, ça va.Ça va ?Oui, ça va, ça va.Il faut utiliser Copilot.Ça va, je les connais.En plus, j'avais senti le coup.
00:28:29 :Je les avais bien bossés, les fonctions, pour être sûr de les connaître.Et le jour où j'ai choisi ça, boum.Comme par hasard, je les ai eues et ça allait.
00:28:37 :Mais Random, franchement, c'est bien parce que ça s'utilise.Moi, c'est là-dedans, par exemple.J'ai mon personnage.Ici, par exemple, Random, j'utilise pour mon jeu de rôle.
00:28:48 :Où ça va me permettre de choisir les objets que les personnes vont pouvoir gagneren fonction du statut de chance du personnage.Voilà, quoi.Donc, Random, hyper utile.
00:29:06 :Non, non, il est très utile en programmation.Normalement, c'est essentiel.Ça permet des choses à connaître absolument.Je ne sais même pas si j'utilise dans celui-là.
00:29:15 :Non, je n'utilise pas dans le combat.Non.Alors, on reprend.Du coup, Random, on est passé dessus.Les Rejects, ça se trouve, je les ai foutus.
00:29:31 :J'ai fait un truc.Les Rejects, vous êtes fan ou pas ?Oui, c'est très intéressant à connaître.Moi, quand je l'ai connu récemment, ça fait un an ou deux.
00:29:49 :C'est très utile.Par exemple, pour l'email, le numéro de téléphone, etc.Pour l'adresse IP, pareil.Par pas mal de choses, tu te retrouves avec.Mais il faut tester avec regex.com, si je me rappelle bien.
00:30:07 :Oui, tu as un site.Un site où tu formes avec la syntaxe et ils te donnent si c'est bon ou pas.Oui.Du coup, ça véridique.
00:30:19 :Le jour du Tozai, il m'a posé une question.Je n'ai pas pu répondre parce que j'avais un trop de mémoire.Et parce que je ne lui connais pas par cœur.
00:30:26 :Mais du coup, si vous voulez pouvoir répondre à la question, il faut.Il vous demande.Alors, ce n'est pas très compliqué.Enfin, ils n'ont pas abusé non plus, tu vois.
00:30:33 :Mais je ne sais plus.Il vous donne un programme.Enfin, dans l'IDE.Il faut écrire une fonction qui vous permet d'extraire une partie d'un texte, en fait.
00:30:42 :Ce n'est pas cool.Et je crois que pour rigoler, je leur avais mis un petit mot à la fin.Quoi ? Je n'ai pas bien entendu, Gabi.
00:30:51 :Dans le Tozai, vous allez avoir.Moi, j'ai une question.Enfin, je ne sais pas si vous allez l'avoir.Moi, j'ai une question.Là, vous êtes en mode IDE.
00:31:01 :Vous devez écrire une fonction qui vous permet d'extraire une partie du texte qu'ils demandent.D'accord.Oui, franchement, c'est chaud.Parce que quand tu ne connais pas par cœur, c'est emmerdant.
00:31:14 :Vraiment.Et moi, j'avais un truc de mémoire.En plus, ce n'était pas compliqué.Ce n'était pas un truc compliqué, mais j'avais un truc de mémoire.
00:31:19 :Donc, Clerégex.Je ne sais pas si Salvator, Sylla, vous l'utilisez.Je l'utilise, mais pas très.Oui, peu.Même moins peu.Pas trop.Bon, du coup, si vous voulez avoir bon, cette question-là, il va falloir...
00:31:39 :Pour nettoyer les bases de données.Oui.Et Thibault a fait une formation dessus à l'échelle de Doctrine.Mais du coup, c'est bien de savoir un peu ce qu'elles font les regex.
00:31:50 :Donc, à chaque fois, c'est ce qu'on cherche et combien de fois on le cherche.Donc, soit je vous mets ça ou vous le trouvez facilement sur Internet, cette liste-là.
00:32:00 :Et donc là, vous allez avoir n'importe quel caractère avec le point.On va venir sur les petits programmes après pour voir comment ça fonctionne.Pour ceux qui n'utilisent pas trop.
00:32:09 :Là, avec le D minuscule, c'est les chiffres.Donc, c'est entre 0 et 9.D, c'est les non-chiffres.Donc, c'est en gros...Ici, si on met le circonflexe, en gros, c'est l'inverse de ce qu'on a ici.
00:32:20 :Donc là, c'est tout, mais pas des chiffres.Voilà.Donc, ici, caractères alphanumériques, non-alphanumériques, les espaces blancs.Enfin, voilà.Donc, ça, c'est à connaître.Ici, c'est les caractères qu'on a listés.
00:32:35 :Donc là, on ne cherche que les caractères abaissés.Ici, on veut l'inverse, donc tout sauf les caractères abaissés.Ici, c'est l'intervalle, donc les caractères de A à Z, et ainsi de suite.
00:32:45 :Voilà.Pour les quantités, donc là, c'est ce qu'on cherche.Et les quantités, c'est ici.Donc, vous avez l'étoile de plus.Le point d'interrogation, c'est ici, les accolades avec le nombre.
00:32:56 :Donc là, c'est 0 ou plus, 1 ou plus, 0 ou 1.Exactement, N fois.Et ici, après, vous avez vos petits intervalles.Pour faire un intervalle.
00:33:05 :Et ici, vous avez vos alternatives.Donc, je ne sais pas ici.Ouais, c'est ça.Du pont et du pont.Ou du pont.Et vous pouvez aussi créer des groupes de capture.
00:33:12 :Voilà.Donc, on va passer aux exemples.Parce que c'est vrai que...Ah, merci, Walid, pour le...C'est réjectant, ouais.Ça, ça m'a bien servi aussi, ça.
00:33:20 :Ouais, ouais.C'est très intéressant.Mais il faut un but, quoi.C'est que tu traites un sujet particulier pour le perfectionner.Bah, ouais.Et en fait, ce qu'il va falloir savoir, du coup, pour Tosa,c'est que vous avez plusieurs fonctions sur la regex.
00:33:39 :Donc, vous avez la fonction match.La fonction match a permis de chercher, dans son check de caractère,ce qui correspond à notre regex.Donc, c'est le but.
00:33:48 :Mais en partant du début.Ça veut dire que si votre motif, il ne correspond pas dès le début,ça vous renvoie non.Voilà.Donc, ici, par exemple...
00:33:58 :Là, j'ai mis, ici, un point.Donc, un point, on a dit que c'était tous les caractères.N'importe quel caractère.En entrecollage, j'ai mis deux.Donc, j'ai mis.
00:34:11 :On va chercher n'importe quel caractère, mais on va chercher les, entre guillemets, deux fois.Donc, si je print.Donc, là, vous êtes re.match.Si vous printez re.match, ça vous sort ici.
00:34:24 :re.match object.Donc, match, c'est vu, parce que ça commence ici.Il est là.Ma phrase, il y a marqué Dupont et Dupont.Donc, ça va me trouver les deux premiers.
00:34:37 :D et U.Sinon, ça vous imprime carrément votre objet.Re.match object.Pour avoir, en fait, ce que vous cherchez vraiment.Donc, le D et le U, vous faites A en groupe.
00:34:51 :Voilà.Il faut savoir que vous pouvez créer des groupes.Donc, là, on va prendre un exemple plus parlant.Donc, on va faire un re.match.Ici, le pattern, c'est fortement conseillé d'utiliser des raw strings.
00:35:08 :Ça s'appelle des raw strings R.Je l'ai mis, je crois, en plus.Des chaînes brutes avec les R, donc les raw strings.C'est, par exemple, parce qu'en Python, si vous faites un backslash avec N,ça vous fait un espace.
00:35:24 :Avec les raw strings, en fait, ça ne vous fera pas d'espace.Ça va bien vous l'interpréter comme vous voulez.Voilà.Avec match, par exemple, ici, je repars sur ma phrase Dupont et Dupont.
00:35:38 :Ici, je crée un premier groupe.Ici, c'est bien un caractère alphanumérique.Plus, c'est un ou plus.Donc, ici, j'ai bien un caractère alphanumérique.Donc, j'en mets un ou plus.
00:35:52 :Ensuite, je cherche un espace.Un caractère alphanumérique, un ou plus, ensuite un espace, ainsi de suite.Là, je colle très bien à ma petite phrase qui est ici.
00:36:03 :En fait, le fait de faire des parenthèses, ça vous crée les groupes.Donc, si vous faites un print, ça va être ici.Si vous faites point-groupe, tout simplement point-groupe, ça va vous printer votre match.
00:36:18 :Groupe 1, c'est le premier groupe qui est ici.Donc, là, on est bien sur le premier mot, Dupont.Groupe 2, ici, j'ai créé un groupe sur le deuxième mot.
00:36:27 :Donc, pas sur l'espace, mais c'est bien et, ainsi de suite.Et si vous faites un point-groupe, ça va vous sortir sous forme de tuple.Voilà.
00:36:35 :Mais, en gros, aller-réjecte, il va bien falloir connaître les fonctions si vous avez la question.Donc, là, vous avez point-match, ici.Donc, c'est bien la fonction qui vous permet de chercher en partant du début.
00:36:48 :Je ne pense pas que ce soit la plus utile pour l'exercice qu'ils m'ont proposé, moi.Vous avez la fonction qui s'appelle...Putain, ça lag.La fonction search.
00:36:59 :Donc, ici, la fonction search, ça va chercher en toute la chaîne de caractère, pas uniquement dès le début, en fait.Parce que si vous faites un pattern qui, dès le début, ne correspond pas, ça vous retourne dans le non.
00:37:10 :Dès que ça arrive au premier caractère, si ça ne correspond pas, vous avez un non.Là, ici, en fait, avec la fonction search,ça va chercher, on ne part pas dès le début, mais dans toute la chaîne de caractère,et ça va vous retourner la première occurrence.
00:37:24 :Donc, là, par exemple, j'ai écrit une regex.Bon, celle-là, elle est faite maison pour rechercher des adresses mail.Je ne pense pas que ce soit la plus optimisée, il y en a peut-être des mieux, mais je l'ai faite tout à l'heure pour le fun.
00:37:36 :Ici, avec search, si on regarde bien,alors, fin de match, avec search, je trouve bien mes groupes.Donc, j'ai fait un groupe pour l'adresse mail, le domaine et l'extension.
00:37:50 :Quand on regarde ici, ça va être le nom de l'adresse mail, donc Gabriel trouve 5, le arrobase,un groupe pour le domaine, et puis après, un groupe pour l'extension.
00:38:04 :Donc, il y a ça, split, il n'y a peut-être pas forcément besoin de le voir.Et donc, là, c'est parce qu'ici, j'ai créé des groupes avec ma regex.
00:38:15 :Par contre, avec votre regex, vous n'êtes pas obligé de créer des groupes.Ici, par exemple, tout en bas, j'ai utilisé match, mais sans groupe.Donc, à la fin, quand vous n'utilisez pas de groupe, ça vous imprime vraiment toute la ligne.
00:38:32 :On va voir avec l'exemple après.Vous avez findAll, donc sous la fonction findAll, qui va chercher en toute la chaîne de caractère,mais pas uniquement la première occurrence.
00:38:46 :Parce qu'ici, par exemple, j'ai bien deux adresses mail.Donc, avec search, ici, je n'ai que la première adresse mail qui ressort.Avec findAll, j'ai mes deux adresses mail qui sont retrouvées.
00:39:00 :C'est un peu lourd, c'est un peu lourdingue, j'avoue.Ce n'est pas évident, mais apprenez bien comment fonctionnent les regex.Apprenez vraiment les bases des fonctions.
00:39:15 :Est-ce que ça va ou est-ce que c'est vraiment compliqué pour ceux qui ne combattent pas l'habitude ?Oui, le regex, il faut pratiquer.C'est chaud au début.
00:39:29 :C'est vrai. Personnellement, je n'ai pas beaucoup touché.À part, il y a une formation, je pense, que Thibault a faite, là.Donc, à part ça, je n'ai pas touché.
00:39:42 :Parce que là, j'explique, mais en plus, c'est à vide, c'est un peu abstrait.Mais j'en sais pas, il est vachement utile.Parce que j'ai fait un petit truc, d'ailleurs, test PDF.
00:39:52 :Je pense avoir des gens qui ne l'utilisaient jamais, leur montrer l'utilité.Parce qu'ici, j'ai fait un PDF bidon.En fait, par exemple, j'ai du texte qui ne sert à rien, c'est l'exemple.
00:40:04 :Et j'ai des infos cachées.Donc, j'ai Gabriel Troussaint, gmail.com.Puis, par exemple, là, Walid60, robanski.com.Et en fait, comme quoi, c'est pas mal, les regex.
00:40:17 :Comme ça, c'est génial.Parce qu'ici, j'ai importé PDF Reader pour pouvoir extraire le texte de mon PDF.Et bon, j'ai fait forme de classe, aussi.
00:40:25 :Je vais faire rapidement.Donc, elle n'est pas parfaite, mais elle fonctionne.Mais genre là, par exemple, ici, je vais aller chercher mon PDF.Donc, la première page.
00:40:33 :Je vais extraire le texte.Donc, le texte, il est dans ma variable texte, ici.Et genre là, je vais faire un find all pour trouver toutes les occurrences.
00:40:41 :Et j'ai ma regex, mon pattern pour l'adresse mail.Et j'envoie mon texte.Et ici, j'ai bien mes adresses mail qui sont trouvées, en fait.Ouais, dans le document, ouais.
00:40:51 :Ouais.Voilà.Bon, là, il n'y a pas deux fois que j'ai fait un printable.J'ai fait à l'arrache.Et là, je l'ai fait sous forme de classe.
00:40:58 :Mais voilà.Ouais, c'est cool, ça.Ouais, ouais.Donc, les regex, ouais.Il n'y a pas mal de fonctions.Mais je pense que...Enfin, je ne vais pas me dire de bêtises.
00:41:10 :Apprenez les principales.Il y a SERP.Je l'ai dit.La split, je ne suis pas sûr qu'elle soit utile.Je ne peux pas aller dessus.
00:41:17 :Je ne peux pas vous blinder le crâne avec ça.Mais il y a...Ouais, SERP, c'est la première occurrence.Sinon, il y a la Find All, en fait, qui vraiment va...
00:41:27 :Là, moi, j'utilise la Find All dans mon test de PDF, là.La Find All qui va vous montrer toutes les occurrences.Et puis, ça va vous retourner ça.
00:41:36 :Donc, si vous retournez dessus, ça va vous retourner.On est bien sur une liste.Donc, si vous cherchez le premier élément, normalement...Voilà, j'ai bien ma première adresse mail ici.
00:41:50 :Donc, voilà.Pour le Toza, apprenez un peu à pouvoir écrire un pattern.Mais peut-être qu'il n'est pas très compliqué.Un pattern de regex et puis à utiliser Find All.
00:42:01 :Et après, vu que le texte, je ne sais plus s'il est très long,ce qu'il vous donne.Mais vous pouvez très bien aller chercher grâce au Slice, en fait.
00:42:08 :Grâce à l'indice, le premier élément, par exemple.Si vous avez le premier élément ou...Si il y a besoin, quoi.Voilà.Donc, j'espère que ça vous va sur les regex.
00:42:22 :Est-ce que je peux passer à la suite ou vous voulez revoir un truc dessus ?OK, valide.Écoute, ici, là, pour toi, c'est bon.Il y a encore un peu de temps.
00:42:42 :Juste, n'oublie pas de partager le code avec nous, c'est tout.Je vous ferai un petit réseau.Il n'y a pas de problème.Je ne l'ai pas fait, mais je le ferai après ou demain.
00:42:56 :Est-ce qu'il y a un truc qui vous fait peur pour le Toza ou pas, en particulier ?Moi, personnellement, non.À part les regex.Il faut juste apprendre par cœur.
00:43:12 :Oui, oui.Et éviter d'utiliser Copilot.J'essaie de les désactiver en ce moment.J'essaie, mais je n'arrive pas à chaque fois.Je sais que, valide.Ici, là, vous passez tous les deux.
00:43:30 :Salvatore, il ne le passe pas, mais il fait de la révision comme ça.Est-ce qu'il y a des choses que vous voulez voir en priorité ?
00:43:36 :Sinon, on peut repasser vite fait sur Datetime.Datetime, il y a des questions, tu crois.Est-ce qu'il y a vraiment une chose que vous voulez voir en particulier ?
00:43:42 :Personnellement, non.On peut le voir, Datetime.Oui, ça, c'est le truc.Je n'ai rien préparé dessus, mais j'avais mes petites notes dessus, en fait.Datetime, je ne sais plus ce qu'il peut vous poser comme question.
00:44:03 :Je ne sais plus si j'en ai eu.Moi, sincèrement, je ne te cache pas.Avec Copilot, si je veux la date, il me donne.Oui, je sais.
00:44:13 :Et là, il va vous...Il met le stat, le temps de départ et le temps d'arrivée, et il calcule la syntaxe.C'est juste ça, ce que je fais.
00:44:24 :Mais là, du coup, avec Datetime, il peut vous poser plusieurs questions.Oui, il y a beaucoup de fonctions dans Datetime.Pour le fun, pour ceux qui ne connaissent pas, c'est juste avant d'attaquer ça.
00:44:39 :Date par heure, je ne sais pas si vous connaissez.C'est Thibaut qui l'avait montré, je crois, dans une formation.En gros, vous utilisez DateParseur.parse.Ici, vous mettez ce que vous voulez, genre, il y a 30 ans, dans 3 jours, le 1er mai 1970.
00:44:53 :Et là, vous allez voir.Il cherche. Il est capable de me sortir les dates.Ah, oui.Voilà, vu que c'est le titre.Ça, c'est génial. Je ne savais pas ça.
00:45:05 :C'est DateParseur.C'est un peu orthosa, ce que je vous dis, parce que vous n'aurez pas DateParseur.C'est un peu facile.Mais normalement, DateParseur, c'est ça.
00:45:16 :Vous l'avez ici. Je sais que je tiens ça, Thibaut.Et c'est assez cool.Donc ça, c'était le petit crochet avant Datetime.C'est inclus ou il faut l'installer à part ?
00:45:30 :Non, il faut l'installer. Ce n'est pas du tout natif.Du coup, on ne l'aura pas dans Thosa ?Non, vous ne l'aurez pas.C'est juste pour le fun.
00:45:37 :J'ai trouvé ça cool, en fait, pour ça.Oui, une question là, c'est le part.C'est en fonction de la date du jour, date du système.
00:45:47 :Il y a trois jours, donc à trois heures.Oui, c'est ça.Mais voilà, ce n'est pas Thosa du tout.C'est juste pour le...Je comprends, je comprends.
00:45:58 :C'est le titre aussi, le titre d'Addingo.Vraiment, oui.Tu peux avoir un utilisateur qui te met un formulaire et puis...Voilà, effectivement.Bref, l'envoyer dedans.
00:46:09 :C'est quoi les langues utilisées qu'il arrive à reconnaître ?C'est le français, l'anglais ou...Bonne question, il faudra aller voir sur la page du...Parce que là, tu as mentionné en français,il a bien su le comprendre, c'est intéressant.
00:46:28 :Oui, j'en connais plusieurs.On le voit en ESSR, il y en a plusieurs.Mais tu vois, si tu vas voir sur la doc,normalement tu as tout.
00:46:42 :Je crois qu'ils le disent en plus.Mais pour le Thosa, du coup, vous allez avoir le droit à datetime.Oui.Il n'y a pas un truc où je me suis juste entraîné pour...
00:46:55 :Je n'ai rien préparé spécialement.Juste avec datetime, les principales fonctions.Donc, vous avez...Là, j'ai mes trois premiers prints qui sont là.datepointtoday, datetime.no, datetime.today.
00:47:13 :C'est ça, voilà.OK.Donc, je pense que ça, ce n'est pas ce qu'il y a de plus intéressant.Je pense que ça, ce n'est pas ce qu'il y a de plus intéressant.
00:47:25 :Mais il faut savoir que vous pouvez récupérer le jour.Avec date, c'est today.Mais avec datetime, vous pouvez faire no et today.Voilà.Parce que date.no, normalement, ça n'existe pas.
00:47:39 :Voilà.On ne peut pas se faire avoir, ça n'existe pas.Ce que je voulais vous montrer, c'est ça.Il faut bien se rappeler.C'est plus chiant.
00:47:50 :Avec une date formatée.Donc là, j'ai...Aujourd'hui, c'est ma date.today.Donc, c'est aujourd'hui.Vous pouvez ensuite formater vos dates en chaînes de caractères.Avec, en gros, str, ftime.
00:48:05 :Donc là, je pars ici.Ici, A majuscule, ça va être le jour.D, ça va être le jour, mais en...Enfin, le numéro du jour.
00:48:19 :B, c'est le mois en toutes lettres.Y, c'est la date en...Enfin, vos quatre chiffres, en gros.2024.Ce qu'il faut retenir...Est-ce que j'ai un exemple avec un peu tous les...
00:48:32 :Est-ce qu'on peut avoir...Donc, si je regarde, par exemple...Est-ce que je peux l'avoir?Str, ftime.Alors, attendez.Normalement, de toute façon, on a...Je peux avoir un lexique.
00:48:47 :Lexique.C'est date, time, piton.Type de base de l'heure.Est-ce que je trouve plus?Je ne sais plus.Gestion des dates avec piton.Il y a une formation.
00:49:01 :Ah!Est-ce qu'il avait écrit un petit lexique ou pas dessus?Je ne le trouve pas.Je ne sais plus.C'est pas grave.Il n'y a pas de date, time.
00:49:15 :Je ne sais plus de date, time.Je ne sais plus de rien.Sinon, est-ce que j'en ai un autre?Gestion du temps, piton.Il faudra que je regarde les formatages de la terre.
00:49:24 :Bon, en gros, ce n'est pas très grave.Quand vous avez un objet date, time,vous pouvez le convertir en chaîne de caractèreavec str, ftime.
00:49:34 :Là, c'est moins utilisé,mais sinon, si j'en ai un plus classique,là, par exemple, ici, je vais le...Donc là, on a le str, ftimepour le mettre en chaîne de caractère,mais on peut partir d'une chaîne de caractèrepour créer un objet date, time.
00:49:48 :Donc ici, ce n'est pas str, ftime,c'est str, ptime.Voilà.Et donc, par exemple,vous avez une date en chaîne de caractère.Ça, vous pouvez l'avoir en question.
00:50:01 :Et vous indiquez à côté le formatpour qu'il sache comment le faire.Donc là, j'ai bien ma date.Là, j'ai dit 21 octobre 2022.Donc le format, c'est bien...
00:50:11 :Ah, c'est d'abord l'année.Donc c'est en 2021, plutôt.Donc si je l'imprime, date, ici,j'ai mis où ?Tac, tac.Hier.C'est bien 21, j'ai un doute.
00:50:26 :C'est ça, 2021.Ici, c'est celui-là.Donc, je recommence.Ici, j'ai mis, donc là,hier, ça correspond à l'année,mais en deux chiffres, en fait.Donc 2021, c'est le 21,2022, 22, ainsi de suite.
00:50:40 :Moi, ici, M en minuscule,ça va être le mois.Et Day en minuscule, ici,donc ça va être le jour.Voilà.Est-ce que j'ai un autre exemple ?
00:50:53 :Je l'ai refait là, ici.Donc là, par exemple,on voit bien qu'ici, l'année,en quatre chiffres, c'est bien Y majuscule.Mais c'est pareil,le jour et les mois, 13-10,c'est bien Day et M en minuscule.
00:51:08 :Voilà.Retenez ça.Mais surtout,retenez bien que quand vous convertissezce qui est les manchettes de caractère,vous pouvez faire un peu comme vous voulez.
00:51:22 :Après là, je l'ai écrit comme çapour faire les tests,pour vous montrer que, par exemple, là,vous voyez, ça marche aussi.Donc là, j'ai bienle jour,le mois,l'année,et ensuite, les heures, minutes, secondes,c'est en majuscule.
00:51:39 :Donc jour, mois,Day, M en minuscule,l'année peut avoir les quatre chiffres en majuscule,et ensuite, les heures, minutes, secondes,ça va être en majuscule.
00:51:47 :Et si vous voulez récupérerle jour et le moisen toutes lettres,c'est A et B en majuscule.Voilà.Ça, c'est des choses à apprendrepour le Cosa.
00:52:01 :Je suis repassé rapidement dessusparce qu'il y a déjà eu un mentorat dessus.J'ai mis le liendans le Discord.Mais apprenez bien, surtout,les façons de convertiravecstrftime.
00:52:15 :Donc là, pour passerd'un objetdatetimeà chaîne de caractère.Avec ptime, c'est pour passerd'une chaîne de caractèreà un objet datetime.Et puis, connaître les fonctions,le today, datetime,les isoformats aussi.
00:52:31 :Il faut connaître les isoformats,mais ça, il y a tout un mentorat dessus.Donc,je pourrais essayer d'avoir autre chosesi vous voulez d'autres choses à voir.
00:52:39 :Mais là, on a revu un petit peula gestion d'état.Mais après, c'est pas compliquéd'apprendre les mois,semaines, les mois, années.C'est pas très compliqué au final.
00:52:48 :C'est vraiment retenezjour en minuscule,mois ici en minuscule,l'année à quatre chiffresen majuscule.Par contre,heure, minute, seconde,c'est majuscule.Voilà.Est-ce que ça va ?
00:53:04 :Est-ce que ça va ?Ou c'est un peu...C'est chaud.Ça va, il faut juste le retenir.Ouais, c'est ça, il faut le retenir.Voilà.
00:53:17 :Répétez encore de plus.Ouais, moi, tu vois,ici, ce que j'ai écrit,c'est des trucs que moi,j'ai faittout seul à l'époquepour m'entraîner,faire des tests un peu,voir ce que ça fait.
00:53:31 :Puis ensuite,c'est comme ça que j'ai retenu.Puis toutes les questionsque j'ai eues là-dessus,je ne sais plus si je les ai eues,mais en tout cas,ça n'avait pas de surprise.
00:53:38 :Je m'étais même amuséà faireune petite application weboù je m'étais amuséà créer une fonction,là, par exemple,qui partd'une chaîne de caractèreet qui va la transformer en...
00:53:54 :Voilà, ici,je la transforme, du coup,au format que je veux,en date,à mon format, à moi,parce que je l'ai récupéréepar une API.
00:54:04 :Ça m'a envoyé une date,mais je n'aimais pas le format.Ça faisait un peu le formatanglo-saxon.Du coup,j'ai appeléFrenchieFormat,ma fonction.Et voilà,ça m'a fait faire un peu bosser çade manière cool.
00:54:16 :Maintenant, du coup,j'ai une application weboù je vais...Je ne sais même pas si...Je ne sais plus comment on lance.Run...C'est quoi, c'est...
00:54:25 :Index.py,je ne sais plus.Tac.Voilà.C'est ma...Mon application webavec une APIoù, voilà,j'ai formaté ma date,en fait,au format français.
00:54:38 :Parce que sinon,les gens ne comprenaient pas,quoi.Donc, ça m'a permisde bosser une API,chercher les derniers filmsqui sont cinéma en ce moment,et en plus,voilà,me faire un petit date time,un petit exerciceavec date time,quoi.
00:54:51 :Voilà.Donc,entraînez-vous,même si vous avez le temps,vous faire des petits trucscomme ça,en fait,des projets...Bon, voilà,j'ai eu l'occasionde bosser date timegrâce à ça,par exemple,voilà.
00:55:05 :Les randomsavec mon truc du RPG,mon jeu de RPG...Ouais,c'est facile avec Django,vous bossez avec les settings,voilà.Voilà, voilà.Ouais,ouais,ouais.
00:55:16 :Est-ce que c'est bonpour vous ?Est-ce qu'il y a d'autres chosesoù ça va aller ?Ou est-ce qu'il y a des questionscomme ça ?
00:55:22 :Pour moi,ça va.C'est juste,n'oublie pasquand tu as le tempsde...Ouais,je vais vous le mettredans le guide,après.Ouais.J'ai partagéle dateparseuravec...
00:55:36 :J'ai vu,merci.Il y a les langues,du coup,hein ?Ah oui,il y a l'arabe,l'afghan aussi,ça m'a étonné carrémentque tu pensesaux langues.
00:55:47 :C'est incroyable.Je vois ça,ouais.Putain,ils ont fumé,la vache.Voilà.Django,il a beaucoupde...Il y a beaucoupde chocolatet beaucoup de sucre.
00:56:00 :Ouais.Ouais.Donc,voilà.Je vais vous faireun repo de ça,je vais vous le partager.Bon,je ne sais pas,vous allez comprendreparce que les notes,elles ne sont pas...
00:56:12 :C'est un peu...Comment dire ?Non,non,c'est intéressantce que tu as marqué,c'est l'éclair.C'est l'éclairavec tous les commentairesque tu as fait.
00:56:22 :Je voudrais çace soirou demain,en ce moment-là.Quand tu as le temps,ne te presse pas pour ça.C'est vrai.Ce week-end maximum,ce week-end,samedi au pire des cas.
00:56:32 :Ça marche.Voilà.Si c'est bon pour vous,c'est bon pour moi.Pareil.Merci beaucoup.Et bonne soirée,ouais.Salut.Salut tout le monde.Je sais qu'on a vuun peu de chiantavec les rejects,notamment,que c'est un peu chiant,que c'est un peu longet qu'on décroche vite,
00:56:49 :mais vraiment,revoyez-le.C'est sûr et certain,enfin,pas sûr et certain,mais c'est sûr et certainqu'il y ait une ou deux questionssur Toza,au moins,dedans,mais après,ce que vous allez avoir,c'est,voilà,ça peut tomber,voilà.
00:57:05 :Ça marche.Voilà.Merci.Bonne soirée.Si il n'y a plus de questions,bonne soirée.Allô, Gab ?Oui, dis-moi.Je ne sais pas,si tu as le temps,j'avais une petite questionsur mon forum,là,je ne sais passi tu pourras m'aidersi c'est après ça ou…Oui,
00:57:22 :on va laisser mêmel'enregistrement ouvertsi ça t'intéresse.Vas-y,vas-y,vas-y.Bon,j'ai un peu avancé,pas beaucoup.Attends,attends,je…En fait,j'aime Modal,que j'ai,en fait,pour le message,par exemple,mais quand j'essaied'envoyer mon messagesur ma vue,rien ne se passe.
00:57:44 :Vas-y.Attends,attends,je vais partagermon écran vite,là.Attends,je vais partagermon écran vite,là.Hum…Oups.Je ne sais pas si…Tu vois mon écran ?
00:58:08 :Oui.OK.Tu vois,là,par exemple,je vais juste…Attends.Je vais…C'est ça.OK.Bon,là,je n'ai rien mis ici.Forum,toujours.Tu vois,là,maintenant,ce que je fais,en fait,quand tu veux,tu mets « Joindre » ici.
00:58:50 :Oui.Tu mets…Tu prends le forumdans l'avatar.Tu choisis…Oui,oui.Maintenant,quand tu veux te connecter au forum,tu prends juste…Déjà,tu as « Joindre »,donc tu inscris.
00:59:04 :Par exemple,là,je prends ça,je me connecte.Tu vois,je regrisse sur le « Slot »du forum.Du forum,oui.Mais quand je veux faireun nouveau message ici,je metslà,tac,ça là.
00:59:19 :Quand je mets ça,tu vois,il ne…Tu vois,j'ai bel et bien ma fonction,par exemple,quand tu veux.Mais il ne vient passur la fonction 5,je ne sais pas.
00:59:29 :Tu vois,parce que j'ai créécette fonction-làpour récupérer,en fait,pour extraire un message,un truc comme ça,mais il ne vient pas ici,même avec le debug,je ne sais pas.
00:59:39 :Ah,alors attends.Attends,tu peux descendre un petit peu ?Où ça,ici ?Oui,descendre un petit peu,voir tout ce que tu as vu.
00:59:48 :Bon,je viens juste à peinede créer la fonction,je viens juste d'abordqu'il vienne icipour savoir ce qui estdans la requêteet qu'est-ce que je doisrestreindre.
00:59:57 :Mais je…Regarde,quand je me pose ici,tu vois,ici là,il me retourne…Tu sais,quand même,il me retournele forum,là,lui.
01:00:09 :Mais dans le forum,j'extends le base forumqui est là,en fait.Ah,ce n'est pas un modèleform que tu as,c'est un…Non,c'est un modèle.
01:00:19 :Tu vois,c'est ça,le modèle.C'est un bootstrapmodèle,en fait.Attends,je ne vois pasles écrans,là.Tu ne vois pas ?Attends,parce que là,je vois bienta fonctionpost forum message.
01:00:35 :Là,je la vois.Tu ne vois pasle html,là,le base forumpour html ?Attends,je le partage encore.Ah,c'est ça,c'est ça.
01:00:47 :Ah,c'est ça,c'est ça.En fait,c'est un html,c'est un formulaireque tu as faiten pur html,tu n'as pas faiten mirjongle,d'accord ?
01:00:58 :Oui,non,non,non,non,non,non,non,non,non,non,non,non,non,non,non,non,non,non,non,et maintenant tu vois?non,attends,attends,alors,justement connexe,non,Tu ne vois plus ?
01:01:39 :Tu ne vois pas ?Si,si,si,ok,tu vois le modèle,là,celui-là,oui,donc tu vois,j'ai mis action,j'ai mis l'URL,forum post,forum message,oui,tu récupères,voilà,je récupère en fait le titreet le contenu du message,oui,tu as mis ton nom et tout,
01:02:10 :il n'y a pas de problème,oui,oui,ok,tu as mis ton nom,ok,maintenant,il ne rentre même pas dans la fonction là,il ne rentre pas,Tu veux dire quetu ne rentres pas dans ta vue ?
01:02:28 :Oui,il ne rentre pas dans la fonction de la vue,il ne rentre pas,pourtant je vois écrit en bas,19h04avec marqué forum,post forumen méthode post,c'est bien ça,oui,celui-là,c'est ça,c'est ça,mais quand tu viens dans l'url,c'est lui qui est là,tu as le post forum,
01:02:50 :c'est ça qui est là,et le nom.Ouais,donc tu es bien en post forum,mais attends,retourne dedans,retourne dans ta vue,dans la vue ?
01:03:03 :Ouais,parce que pour moi,en fait,là tu as,tes messages,c'est un modèle ?Oui,oui,je n'ai même pas écrit,d'abord,les messages,je l'ai juste,d'abord,parce que je voulais inspecterle contenu de la requête,je voulais savoirle contenu de la requête.
01:03:24 :En fait,tu es sur un,quand tu arrives,tu es sur un render normal.Regarde,quand je mets le debug,je l'active le debug,je l'active le debug,je ne pense pas que j'aurais fait comme ça,moi.
01:03:48 :Tu as le debug activé ?Ouais.Où il est ?Ok.Je peux me retourner ici,forum,et je mets,connexion,je prends,ça.Ouais.
01:04:23 :Nouveau message.Tu vois,normalement,il devait se bloquer ici,il devait se bloquer là.Ouais,il reste ici en fait,c'est ça,et en fait,il ne passe pas à autre chose.
01:04:40 :Ouais,ouais,c'est ça,ouais,je le gérerai différemment,parce que,par exemple,ma fonction,post,forum,message,tu n'utilises pas de html,ce n'est rien,on est d'accord,pour l'instant,tu utilises le basique.
01:04:58 :Ouais,ouais,il vient ici en fait,en fait là,c'est,bon,peut-être que je pourrais utiliser un truc,mais je l'ai juste d'abord testé manuellement,sans utiliser le modèle.
01:05:07 :Ouais,c'est un mieux.Je pense,essaye de faire un redirect,avec ta vue,le problème,c'est que,en plus,ton message,tu ne le registres pas,d'ailleurs.
01:05:20 :Pardon ?Non,je ne l'ajoute pas,je n'ai même pas mes avis,je n'ai pas de save d'abord,parce que là,c'est le member,je l'ai récupéré,mais ce n'est même pas ça,j'ai besoin pratiquement,c'est le message,je vais prendre après.
01:05:32 :Ouais,pour l'instant,tu ne fais rien.Oui,je peux,voilà.Ce qui t'embête,c'est qu'après,tu n'es pas redirigé.Non,il ne rentre pas ici.
01:05:43 :Quand je mets post,non,il ne rentre pas.Regarde,quand je mets post,si je mets ça,c'est post,publié,en fait,c'est un post.
01:05:53 :Allô ?Ouais,ça va,vas-y.Le publié,c'est un post.Ouais,ouais,ouais.Le submit,en fait.Ouais,ouais,je suis d'accord.Donc,là,il était censé venir là,et bloquer ici,et faire maintenantce que je voulais faire.
01:06:13 :Euh,bloque,je ne sais pas,bloque un peu plus loin,voir.J'essaye en bloquantun sirop midi,par exemple.Ici ?Ouais,par exemple,ouais.
01:06:25 :Ok,d'accord.J'essaye.Tu peux relancer,voir.D'accord.D'accord.Euh,euh,euh,euh,euh,euh,euh,euh,euh,euh non.Attends,et retourne t'es bien,retourne sur Pycharm.
01:06:59 :Oui ?Au fait,il revient,ok,ok.Il est toujours là.Ecoutez-moi,il est toujours là,c'est le serveur,mais euh,t'es bien en mode debug là ?
01:07:11 :Oui, là,là c'est le debug,ouais,en mode debug,ouais,tu vois ?Ah,ok,t'es bien en mode debug,on est d'accord.Ouais.C'est marrant,on dirait pas,parce que moi,quand il est en mode debug,il fait pas ça.
01:07:27 :C'est sûr et certain,ouais,il a l'air d'être,ouais,c'est bon.Je sais pas si c'est à cause du modal,c'est là,c'est le modal qui est là,c'est le modal du booster.
01:07:36 :Ouais,je vais te,tu peux partager un truc vite fait là ?Oui,oui,oui,oui.Attends,je vais partager,tout l'écran,l'écran 2.Hop,il est où ?
01:07:56 :Il faut rendre,je sais plus où je l'ai mis,je l'avais refait en plus,attends,je suis perdu,si ça se trouve,il était pas loin.
01:08:06 :Test,newspaper,custom,je me dis où est mon forum,moi ?Ouais,actel labo,youtube,c'est sûr que je l'avais remis.C'était quoi ça ?
01:08:21 :Non.Bah mince,comment je l'appelle déjà ?Trinit,pygabdev,retour,ah,c'est ça.Alors attends,on va tout,ok,ok,tac,on va regarder ce qu'on a,ici,forum,j'ai mes modèles,j'ai mes vues,modèles,private,ok,vues,forum,alors,atopic,tu vois genre moi quand il me rajoute un message,
01:08:55 :par exemple,ma façon de faire surtout,alors,euh,j'ai bien ma requête poste,donc quand j'arrive dessus,ici j'ai mon formulaire,voilà,mon instance formulaire qui est,c'est vide ?
01:09:13 :Ouais.J'arrive sur mon render,ouais,ok,là j'ai bien ma poste,je fais tout ce que j'ai,ici je fais un redirect,toi ton problème c'est là,c'est que tu as l'air de ne pas rentrer,dans ta,dans ton,à la fonction du forum,qui poste le message,en fait,
01:09:32 :toi tu ne rentres pas là-dedans,ouais,je ne rentre pas,ok,alors,repartage ton écran vite fait,attends,euh,oops,euh,tu vois là,tu veux savoir comment s'appelle bien ta fonction ?
01:09:58 :ok,c'est-à-dire comment elle s'appelle,ouais,t'as vu comment elle s'appelle,poste forum message,ouais,parce qu'en plus t'arrives dessus,toi là,d'accord,t'as bien mis ta poste,les gars,oui,au fait,là,tu vois le,le poste forum message,ici,dans l'URL,il est toujours là,sur l'URL,en fait,
01:10:27 :mais,je ne sais pas,parce que ça qu'il met,c'est poste,il dit quoi,j'ai fait un poste sur ça,ouais,refais un poste,vas-y,renvoie un message comme t'as fait tout à l'heure,c'est peut-être,au niveau de ton bouton,peut-être qu'il y a un problème,non ?
01:10:44 :où ça ?le bouton là ?euh,oui,euh,publier,refais un petit message,vois,attends,et on va voir,si t'as bien,un,ok,publier,21h16,tu vois,oui,et,vas-y,et va voir dans ton debug,21h16,du coup,cette fois,t'as bien,t'as ton get,et t'as bien,
01:11:15 :t'as ton poste qui se fait,donc,il faut,il vient,mais,je ne sais pas,pourquoi,c'était bien dans la poste,c'était bien dans la poste,ou bien c'est mon bitcoin,non,if request,method,égal,je peux mettre un print,peut-être,ici,ouais,mets un print,ouais,à l'ancienne,
01:11:36 :print,print message envoyé,par exemple,print bouton cliquer,ouais,ouais,post,forum,message,ok,attends,euh,attends,ça arrive,ouais,ائ,ouaisvoilà,voilà qui est bien,on a débloqué hein !
01:12:07 :ouais,ouais,ouais,ouf,ça arrive,l'ancienne,un,un title,ouais,oh,ok,alors,dans ce livre de dedicat,ok,ok,ça se trouve,il y a un truc qui n'est pas compliqué du tout,mais là,j'ai,attends,il ne,il ne,il ne log pas le truc,ouais,ouais,
01:12:47 :il ne log pas le truc,t'as un repo pour ça,ou pas ?non,oui,j'ai un repo,mais je ne sais pas,je peux le mettre à jour,ouais,ouais,fonce,il y a un truc qui n'est pas compliqué,en fait,parce que quand,c'est que,comment dirais-je,
01:13:05 :euh,euh,ce que Salvatore dit,je ne sais pas,en fait,est-ce que moi,je ne sais pas,le modal,en fait,ouais,est-ce que le modal,est-ce que le modal,parce que tu vois,est-ce que le modal,il,il poste directement sur,enlève le ton modal,peut-être,pour commencer,
01:13:24 :bref,moi,je n'utilise pas trop de modal,tu vois,je suis,ok,je,je suis pure back-end,alors,j'avoue que,je fais simple,pour commencer,enlève ton modal,essaye,mais,de toute façon,il y a un truc que là,je n'ai pas,je n'ai pas fait gaffe,t'as vu,
01:13:44 :et de toute façon,il est évident le truc,euh,je vais faire ça aussi,je vais,quand j'élève le modal,il ne va plus,c'est le NGS pour,pour aller de,hein ?
01:13:54 :T'as rien de méchant,là,dans ton truc,c'est pas,c'est pas méchant ce qui se passe,non,t'as bien ton,dans ton format.Non,pas de quoi,hein,pardon ?
01:14:06 :Ton bouton,il est où là-dedans ?Il est là,il est là,il est là,il est là,je suis,celui qui est là,publié,c'est lui.
01:14:16 :Type sub-meet ?Hm...Hum,ben,c'est bien,t'as,t'as,t'as balise form,ouais.Ouais,ouais,c'est là,le form.T'as bien une méthode post.Ben,envoie-moi un repo,envoie-moi un repo,je vais regarder vite fait,s'il te plaît,je vais,ça me paraît bizarre.
01:14:38 :Ok,ça marche,ça marche,ça marche.Il y a beaucoup de trucs,là,je vais pas les enphaser trop,mais je pense que t'as pas,c'est pas compliqué ton problème,je pense.
Aucune occurrence trouvée pour « ».