Session du 25 juillet 2024 à 20h00
Pratique & Live Coding
TOSA & Certifications
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
Session de mentorat TOSA
Session de mentorat TOSA dans laquelle Gabriel va passer en revue plusieurs exercices débutants et intermédiaires pour revoir des notions fondamentales pour le TOSA.
00:00:00 :que tu vois à l'enregistrement.Il y a un petit message qui dit que la session se déroule sur le serveur discord mais c'estpas le cas. Il y a le bouton pour rejoindre la session quand même, ça va. L'été c'est
00:00:42 :vraiment marrant à quel point il y a deux choses vraiment, deux moments au niveau hebdomadaireet annuel où il y a des grosses baisses de fréquentation et c'est les week-ends et l'été.
00:00:54 :C'est vraiment quand tu regardes les trucs des stats, toutes les semaines ça fait quelquechose comme ça et c'est à chaque fois les week-ends où ça plonge et l'été c'est pareilau niveau de l'année, toute l'année ça va et l'été tac. Donc il y a vraiment beaucoup
00:01:07 :moins de monde en général mais bon on essaie quand même de continuer à faire des événementsparce qu'il y a quand même pas mal de gens qui ont rejoint avec le TOSA et du coup bonon va attendre encore un tout petit peu. C'est ça les fois dernières, c'est Kevin
00:01:33 :qui faisait les sessions, ça fait un moment que je n'ai pas fait de session moi-mêmemais on fait signer une feuille de présence maintenant qui nous permet d'avoir un meilleursuivi au-delà du TOSA où là c'est obligatoire, enfin c'est obligatoire, c'est pour rentrerdans toute la paperasse qu'on doit remplir, mais en général nous aussi ça nous permet
00:01:56 :de voir justement, d'adapter un peu mieux tout ça, d'avoir ces statistiques, donc jepeux vous mettre la feuille de présence justement, je vous mets le lien, je ne sais jamais siles gens qui rejoignent plus tard ont accès à l'historique du tchat, mais au pire jeremettrai Gab, n'hésite pas aussi à la fin à remettre le lien que j'ai mis, je
00:02:17 :peux l'épingler, tiens hop. Attends le lien, ok. Ouais je l'ai épinglé, je pense queça devrait être bon. Donc ouais, merci d'aller signer du coup la feuille, ça nous permet
00:02:28 :de faire un meilleur suivi en général, et pour ceux qui sont dans le TOSA, Mathieu,bon après toi Mathieu tu n'étais pas avec le CPF, là c'est vraiment pour ceux qui sontaux ACPF, je ne crois pas qu'il y en ait là ce soir, pour le moment. Et oui du coup
00:02:46 :les sessions, les 3-4, depuis le début de l'été on va dire, depuis fin juin débutjuillet, là on a je crois entre 2 et 4 personnes par session, donc c'est un peu plus petitcomité effectivement qu'en plein milieu de l'année où généralement on arrive à10 des fois 15 personnes. Donc bah écoute on va commencer, je fais une petite introduction
00:03:08 :mais c'est Gab qui va faire la session du coup. C'est ta première session je me demandaisparce que je pensais qu'on en avait fait une TOSA récemment. C'est ma première session
00:03:18 :en tant que mentor, après j'ai déjà fait des talks sur le Discord, qui sont pur Django,100% Django quoi. Ma spécialité quoi. Parce que là c'est ça, Kevin n'était pas là
00:03:27 :cette semaine, donc Kevin qui avait repris le relais un peu des mentorats depuis quelquestemps et puis je me disais que c'était une bonne occasion aussi pour varier un peules gens qui font des sessions. Gab comme je l'avais dit sur le serveur, là je pense
00:03:45 :que vous êtes plus ou moins tous au courant maintenant, a passé le TOSA il y a un moisà peu près maintenant, avec un score dithyrambique de presque 1000, donc 955, ce qui le placedans les statistiquement les 2% des meilleurs scores, donc je pense qu'il a pu trop approuver
00:04:05 :ses compétences et sa pertinence pour animer ce genre de session. De toute façon aprèsc'est combien de temps passé en formation Gab, ça fait un an et demi à peu près ?
00:04:17 :Ouais ça fait un an et demi, après j'ai eu une grosse période où j'ai fait beaucoupplus de Django pur que de Python, mais pour le TOSA je me suis bien mis au Python pur parceque du coup faire du Django, tu apprends plein de choses, après c'est complémentaire,
00:04:33 :quand tu fais du Django forcément tu utilises plein de choses qui sont avec Python, doncc'est complémentaire, mais oui un an et demi et j'ai pu vraiment aller un mois etdemi à me mettre sur des questions type TOSA avec tes compétences.
00:04:45 :Ouais c'est ça et je pense que ce qui est cool aussi c'est justement de, tiens il vientd'arriver aussi, je pense que ce qui est intéressant aussi c'est justement pas forcémenttout le temps d'avoir des experts, bon après moi je vous voyais souvent dans les mentorasqu'il m'arrive encore de découvrir des choses, surtout sur le TOSA où il y a toujours
00:05:05 :des petits trucs, c'est un examen très examen c'est ça, donc il y a des fois des chosesqu'on voit qui sont pas forcément des choses qu'on utilise tous les jours, loin de là,voire même pas tous les ans, il y a des choses que j'ai jamais utilisées en 10 ans
00:05:17 :de dev et voilà, et donc c'est pour ça que je dis qu'on continue d'apprendre.Salut Walid.Salut Thibault, désolé pour le retard.Non pas de souci t'inquiète, on a pas commencé il y a très longtemps.
00:05:30 :Donc je pense que c'est bien aussi d'avoir plein de points de vue différents, en plusquelqu'un qui a passé le TOSA c'est encore plus pertinent je pense, donc le but ce soirc'est vraiment exercice encore une fois, on a prévu des exercices assez larges plutôtdébutants intermédiaires, donc pas des trucs trop trop avancés de graphe etc, mais il y
00:05:52 :a toujours plein de choses intéressantes à revoir dans les exercices, dans les façonsde faire aussi justement, donc voilà c'est un peu l'idée de ce soir, je pense que Gabva voir en fonction de la salle à quel point ce sera participatif ou plus explicatif, doncn'hésitez pas comme d'habitude à participer, à intervenir, à proposer des façons de faire,
00:06:15 :ça va être toujours un petit peu comme ça dans cet esprit, et voilà pour l'intro,et s'il y a des gens qui ont des questions plus générales, puisque j'ai ouvert la sessionen haut de la du TOSA aussi, donc s'il y a des questions plus générales sur d'autreschoses ce sera à la fin, et s'il y avait des questions sur Django, les Query Set, alors
00:06:34 :encore comme disait Gab il y a quelques instants c'est toujours intéressant de voir aussidu Python en dehors, de trucs très académiques et TOSA, et justement avec du Django on voitl'orienté objet, plein de choses comme ça, donc c'est toujours aussi intéressant mêmesi vous n'êtes pas forcément intéressé par le Django, de voir comment le Python
00:06:49 :est utilisé dans d'autres contextes, tout ça ça fait des liens après, et on connectethe dots comme on dit. Donc voilà, je vous laisse avec Gab pour ça, je vais pas blablater
00:07:00 :trop longtemps, et je vous laisse entre de bonnes mains.Merci Thibaut,je vais peut-être couper la caméra,n'hésitez pas à parler là du coup, je voudrais juste savoir,donc Claude je crois que c'est toi qui a répondu,là t'en étais vraiment au début,mais les autres, savoir à quel point vous êtes vraiment au paix là au niveau du TOSA,
00:07:24 :comment vous vous sentez quoi ?Je re-tire mon écran, effectivement je peux faire ça,voilà,pas trop,ouais,normalement j'ai zoomé, ça devrait aller,on devrait voir le code,nickel,alors Mathieu,125 serait ok, merci,Mathieu ok,pas de soucis,Walid toi, il me semble que tu étaisbien au paix,
00:07:59 :Wilfrid je ne sais plus non plus où t'en étais,il y a longtemps que je ne suis pas venu moi,c'est juste qu'on prend de la température,ouais,je suis là,mais je ne suis pas là,ouais,et du coup t'en es où toi au niveau du TOSA,tu te sens comment, tu te sens à l'aise ?
00:08:17 :Il me faut juste un peu de pratique,vu avec les vacances,je n'ai pas beaucoup avancé en ce moment,en plus j'ai rencontré avant hier je pense,en faisant juste un exercice,c'est qu'au niveau du site,j'ai passé le test,c'était un quiz,mais le problème c'est que,pour générer la réponse,
00:08:43 :il a merdé,pendant des jours,je n'ai pas encore eu de réponse,Thibault il est au courant,c'est réglé,il y a eu une interruption,même au régénérer,ça n'a pas fonctionné,il y a eu 2-3 jours d'interruption,Jacqueline en a parlé,j'ai réglé ça cet après-midi,normalement tu peux aller revoir,
00:09:07 :tu devrais avoir les réponses.D'accord.Et donc Wilfried,toi tu en es où ?Si tu m'entends.Moi je viens du premium,ce n'est pas du TOSA.
00:09:23 :Ce n'est pas du TOSA, ok.Et Claude du coup,tu as écrit non pas moi,toi Claude,là tu es à quel niveau du coup ?
00:09:33 :Si tu m'entends.Tu en es aux classes, ok super.Bon, là on va commencer.Du coup,si vous trouvez ça trop facile,vous me le dites.
00:09:47 :J'ai préparé pas mal de petites choses,au niveau des exercices,le but c'est de revoir les exercices TOSA,mais après,rien n'empêchede voir d'autres choses.
00:09:59 :On peut peut-être commencer juste pour,je vais le mettre en haut,commencerpar,Claude au classe,vu que les autres c'était au niveau intermédiaire,quelque chose que j'ai eujustement au niveau du TOSAet qui est bon à savoir,donc plus une fois au PO, ok.
00:10:19 :Je ne sais pas si vous connaissezle module ABC.En fait,le module ABC,c'est bien de le connaître.Pour le TOSA, c'est bien de le connaîtreparce que si tu arrives à des niveauxun peu plus avancés,je ne pense pas que tu sois expert,plus avancés au TOSA,
00:10:39 :tu vas y avoir le droit,quasiment sûr.Donc en fait, ça permet de fairece qu'on appelle des classes abstraites,qui ne sont pas faitespour être instantiels directement.
00:10:51 :Voilà.En gros, vous allez importer votre module ABC.Ici, votre classe,elle va hériter de ABC.Donc là, vous avez votre classe abstraite.Et ensuite, vous allez avoirvos méthodes abstraites,avec Abstract Method.
00:11:07 :En gros, moi au TOSA, j'ai eu comme exercicede faire,ils m'avaient déjà importé, pour m'aider en fait,ils m'avaient déjà importé tout ça de tête.
00:11:15 :Et après, ils m'ont dit,il faut que tu crées une classe abstraiteet tu hérites de cette classe abstraiteet tu montres qu'en gros, tu sais servir des classes abstraites.
00:11:23 :C'est un truc comme ça.Donc, en fait,les classes abstraites, sinon dans la pratique,vont vous permettre de définir justementune interface commune.Ça vous permet en faitde donner un cadredans vos programmes.
00:11:39 :Et là,si on fait un test, par exemple,si je commande tout ça,là, vous allez voir,par exemple, Animal,c'est égal à Animal,ils lancent,et là, vous voyez qu'en fait,on ne peut pas instancier une classe abstraite,surtout qu'il y a une méthode abstraite.
00:11:59 :Donc, en fait, le but,les méthodes abstraites,donc les classes abstraites,vous pouvez en hériter,vous devez en hériter pour les utiliser,et redéfinir à chaque fois chaque méthode.
00:12:15 :Vous êtes obligésde redéfinir en fait une abstraite méthode.Quand vous héritez une classe abstraite.C'est obligatoire.Donc là, on voit, par exemple,que pour Animal, donc MakeSound,à chaque fois, j'ai dûredéfinir MakeSound, retourneBoof,retourneYahoo, peu importe.
00:12:33 :Je vous dis, Autosa, c'est un exemple un peu comme ça,c'est pas très compliqué.Et après, vous pouvez facilementinstancier les classes dont vous héritez.
00:12:41 :Boof, Yahoo, voilà.Là, vraiment, je les ai instanciés,et j'utilise les méthodes.Donc, pour ceux qui commencent les classes,au niveau de la,j'espère que ça va pas trop vous perdre,parce que, avec tout ce qui est surcharge,mais une fois que vous avez finivotre formation vraiment sur les classes,
00:12:59 :la PO,vous pouvez vous pencher un peusur ce module-là, voilà,et vous allez voir, c'est pas très compliqué.Donc, voilà. Est-ce que pour les classes abstraites,
00:13:09 :ça va, ou il y a quelque chosequi est mal compris,ou qu'il faudrait revoir ?Excuse-moi, est-ce qu'il y a un courssur ça, sur ABC, machin,sur des classes abstraites,sur le...
00:13:27 :dans DocStream, ou pas ?Peut-être, non.Il me semble pas...Je sais pas si Thibaud m'entend,mais moi, je me souviens pas avoir fait ça.
00:13:37 :Je me souviens pas avoir fait ça.Après, j'ai découvert ça, en plus,parce qu'avec Jean-Gauche, je fais des modèles abstraits,donc tout se rejoint un peu.
00:13:45 :Mais sinon, non.Thibaud, il y a peut-être...C'est quoi le butde créer ces classes ABC,alors que je devrais tout redéfinirpar défaut, donc je vois pasvraiment l'utilité, quoi.
00:13:59 :Pour des gros programmes,c'est vraiment pour des gros programmes,en fait, ça te permet de définir vraimentdes cadres où,par exemple, vous bossez à plusieurs,par exemple, où les développeursvont devoir utiliser, en fait,ces classes abstraites.
00:14:15 :Pour le coup, c'est vraiment abstrait,c'est pour monter le principe,mais ça définit un cadre bien définiavec des méthodes que vous devez bien redéfinirdans vos programmes, en fait.
00:14:25 :C'est vraiment pour cadrer les choses.Le but, c'estde l'utiliser, maisde te forcerà utiliser ton lien,soi-disant, ta description.Effectivement,ça te fait un cadre, en fait,et ça te permet aussi,après, d'utiliser le polymorphismequi fait que tu peux,que ce soit un chien, un chat,
00:14:51 :tu utilises MakeSound, et ça évite,par exemple, si tu as un développeur,si tu fais pas cette classe abstraite,et que tu laisses le choixun petit peu, donc tu peux avoir une bonne documentationet dire aux gens qui vont créerdes animaux, attention, pourfaire parler votre animal, il faut bien utiliser
00:15:07 :MakeSound, mais t'es pas sûrque les gens vont lire la documentation,bien le faire, etc. Là, en faisant ça,t'es sûr, comme l'a montré Gab, quesi tu réimplémentes pas aussiune méthode, comme il l'a montrélà, quand il lance le code, ça telance une erreur, tu vois.
00:15:23 :Et cela, même situ définis bien MakeSounddans la classe mère,si tu l'as à définir avec un codesans pass, par exemple,c'est le même comportement ?
00:15:35 :Oui, si elle est définie,même si c'est juste un pass, ça va marcher.Après, effectivement, la classeabstraite ne va pas vérifierquoi que ce soit qui se passe à l'intérieur de ta méthode,mais il faut qu'elle soit définie.
00:15:47 :Et ça assure, tu vois, que si,par exemple, ton coderepose beaucoup surces méthodes pour fonctionner,ça empêche un développeurde créer un animaldans ce cas-ci, par exemple, qui n'implémenteraitpas cette méthode et qui pourrait potentiellementfaire planter ton script parce qu'elle n'est pasimplémentée. Donc c'est
00:16:07 :une protection supplémentaire, si tu veux.D'accord.C'est comme unesorte d'interfaceà utiliser.Oui, c'est ça.C'est commel'interface en Java, à peu près.Alors là,Java, je ne connais pas.
00:16:27 :Parce qu'en Java,il y a ce qu'on appelledes interfaces.C'est comme unpseudocode que tu doisle redéfinir comme ça.Il te force à redéfinirchaque méthode et chaque instancede l'interface.
00:16:45 :Donc je pense qu'effectivement, là,tu es en plein dedans, c'est ça.Donc voilà.En tout cas,pour le...Attendez, j'ai pas attaqué.Hop là.Pour leToza, ils vontpeut-être vous demander justement defaire ça.
00:17:07 :Voilà. Et si pour tout le monde,c'est plutôt bien compris,si vous savez ça,franchement... Oui, oui, c'est intéressant.Juste une petite demande,s'il te plaît, Gab,concernant le codeque tu nous as ramené,est-ce que tu peux le partager avec nous ?
00:17:25 :Tout ce que tu as faitpour le Toza.Je te ferai un petit guide là, si tu veux,avec tout ce que j'ai dedans. D'accord, ça marche.
00:17:33 :Nickel. Il y a une questionsur le polymorphisme et la surcharge.Disons que là, dans ce cas-là,on parle plus de surcharge oude polymorphisme ?
00:17:45 :Par exemple, en fait,le polymorphisme, là, c'est plus du polymorphismeparce que ça permetà tes classes d'avoir des méthodesavec le même nomet qui peuvent être appeléesde la même manière.
00:18:01 :Elles se comportent différemment selon la classe.Voilà.La surcharge, par contre,comment dire ?Non, là, c'est du polymorphisme.Non, là, c'est plus du polymorphisme.
00:18:13 :Parce que là,tu vas vraiment avoir des méthodes avec le même nom.Elles vont être appelées de la même manière,mais elles vont se comporterdifféremment.
00:18:23 :Est-ce que j'airépondu à ta question ?Oui.Ensuite,je vais vous faire un guidepour tout ça.Je me remets sur...Hop là, avec mes différentes fenêtres.
00:18:43 :Il y a un exercice, du coup,que je retrouve dans ma fenêtre.Sur les nombres pairs,il est là.Vous voyez bien mon écran ?
00:18:55 :Il est clairement visible.Ok, super.Là, il y a plusieurs concepts intéressantsquand on lit la consigne.Je ne sais pas si vous l'avez déjà tous fait,si ça vous paraît facileou si on peutprendre le temps de passer un peu dessus.
00:19:15 :C'est comme vous voulez.Si jamais vous dites que c'est trop facile,il n'y a pas de souci, dites-le dans la chatte.Je passe un peu plus vite dessus, il n'y a aucun problème.
00:19:23 :Donc ici, quand on lit la consigne,il y a plusieurs concepts.Je vais tout noter après.Pour moi, c'est juste la somme desnombres pairs.
00:19:33 :C'est très simple.C'est juste qu'on divise par deuxet on le somme.Modulo 2 égale 0, c'est bon.Sauf qu'il faut les nombres pairs distincts.
00:19:45 :Donc là,t'es en plein dedans, de toute façon.Donc là, toi t'as parlé deon va le fairesomme, op, nombre pair.Donc,on va avoir une listed'entiers positifs, je vais en rappeler comme ça.
00:20:01 :Donc toi, tu parlesde, je vais le mettre sur monpie chart, j'ai préparé.Donc là, tu parles d'unmodulo, du coup.Oui, c'est ça.
00:20:15 :Modulo 2.On teste si le modulo 2 égale 0 ou pas.Sinon, on ajoute ça.OK.Donc là,on est d'accord que c'est pouravoir les nombres entierspairs. Par contre, on veut
00:20:31 :que ce soit des nombres pairs distincts.C'est à dire que si on a deux fois le nombre pair,il fautle prendre en compte qu'une seule fois.
00:20:39 :Est-ce que vous avez une idée decomment, dans une liste,on peut avoir uneunicité des éléments ?Oui.On utilise 7ou bienon trie.
00:20:55 :On peut utiliser le modèle de trieet on supprimece qui est doublant.C'est possible. Ou bien utiliser 7.Tout simplement.On a plusieurs manières de le faire.
00:21:07 :OK.Quelqu'un qui allait dire autre chose ? J'ai pu entendre.Je disais la même chose.J'utilisais 7.OK. Super.En gros,je crois que c'est la même que j'ai qu'Ibo.
00:21:21 :Là, je veuxbien bien un modulo et un 7.En fait,ce qu'on peut faire ici,c'est une contention listeJe pense quela plupart commencent à être habituésun peu aux compréhensions de liste.
00:21:37 :Je ne sais pas si jamais vous n'êtes pas à l'aise avec ça.Il n'y a pas de problème.Je l'ai déjà utilisé.Moi, c'est ce genre de truc.
00:21:45 :J'ai vraiment du mal à la compréhensionde liste.Je comprends,mais je n'arrive pas encore à l'utiliser.Alors, ne t'inquiète pas.Moi, ça a été longtemps comme ça.
00:21:57 :En gros, tu as ta compréhension ici.Quand tu faisi for i in.Là, en gros,on va boucler sur chaque élément de la liste.
00:22:07 :Sauf que là,la liste, on va la transformer en 7.Comme on disait juste avant,le 7 va permettre,si on a plusieurs fois le chiffre 2,le 7 va te permettre de garderqu'un seul 2.
00:22:21 :Jusque là, ça va ?Je pense que c'est bon.Ok.Et en fait, quand tu faisi for i in 7,tu vas bouclersur ce 7,et tu vas garder les élémentssi i moduleux de 2est égal à 0.
00:22:43 :En gros, s'il n'y a pas de reste.Si c'est un nombre paire.Ok.Alors, des compréhensions de liste,est-ce que je peux pas t'en faireun exempleun exemplelà, je sais pas,je vais ouvrir un nouveau pipeline.
00:23:01 :Je sais pas, par exemple,qu'est-ce qu'on pourrait faire.On va avoir une listequi est égale àje sais pas,1, 2, 3.Si tu faishop là, ah j'aime pas,si tu faisdonc là, basiquement,i for i in list.
00:23:31 :Là, on est d'accordqu'en fait,la liste qu'il y a au-dessus, tu l'as créée.Tu boucles dessus, tu récupères tout en faisant i for i.
00:23:39 :C'est comme si tu faisaisfor i in listprint ihop là.Là, je le constate pas en liste, mais regarde,là, tu boucles sur chaque élément.
00:23:59 :Et en fait, c'est comme si avant,tu créais une liste vide.Donc là, je vais l'appelernouvelle liste.Et ce qu'on va faire ici,c'est qu'on va faire unappend i.
00:24:15 :Voilà.Hop là.Et tu vas voir que là,si je fais un printde ma nouvelle liste,voilà, j'ai exactementle même résultat en fait. Là, tu as la version
00:24:29 :compréhension et la versionsans compréhension.Ok, ok.Ça t'évite en fait de te créer une liste vide avant,de te boucler dessus, de cette façon-là.
00:24:39 :C'est plus concilié. Après, je suis d'accord qu'au début,c'est pas forcémentévident.Voilà.Et regarde ce que j'ai fait, du coup.Tu peux très bien, quand tu boucles,quand tu fais la compréhension de liste, modifier les éléments.
00:24:57 :Là, j'ai par exemple, je veux que i,que pour chaque élément, on rajoute 1.Donc là, j'ai bien du coup une nouvelle listequi fait 2, 3, 4.
00:25:05 :Tu vois, c'est un coup à prendre.Voilà, c'est un coup à prendre.Hop.Le truc le plus simple pourle regarder, c'est de faireun peu la compréhensionde liste en utilisant par exemplel'exposantou le doublex2, etc.
00:25:27 :ou le x,x.x, par exemple. C'est lemodèle le plus simpleà comprendre.Mettre au carré, ouais, bon là, je...Exactement, c'est ça.On peut même le mettre au carré,mais...
00:25:43 :Du coup,je pense que pour tout le monde,donc là, Claude,jusqu'à ce que tu maîtrises bienles compréhensions de liste,est-ce que pour tout le monde, ça, ça va, du coup, c'est bon ?
00:25:55 :On a le bien de modulo pour les non-repères ?Ça, vous avez...C'est une question qui m'aide directementdans les questions de base, je crois, parce que je l'ai euà l'entraînement et j'ai eu le modulo de 2.
00:26:07 :Voilà. Donc, modulo de 2 égale 0,ça veut dire qu'il n'y a pas de reste.Et donc, c'est pour récupérerles non-repères. Voilà.Ça, c'est important à retenir.
00:26:17 :Donc, voilà.Et le 7, pour avoir, du coup, une listed'éléments uniques. Enfin, intégrables, avec des éléments uniques.Est-ce que vous voulez qu'on passe à la suite,ou c'est bon ?
00:26:29 :C'est bon pour moi.Ok.Le temps,est-ce que je veux...Je passe sur l'occurrence de chaque mot.Tac.Il y a Sylla qui a levé la main.
00:26:43 :Ah, excuse-moi, Sylla.Attends, je ne sais pas comment c'est pour...Quand il y a une main levée,il faut que je regarde.Attends, je t'écoute, Sylla.
00:26:53 :Oui, Gab.C'était par rapport au 7.Est-ce qu'on peut l'utiliser sur un dictionnaire ?Ou bien c'est juste...Parce que moi, je ne l'utilise pas pratiquement.
00:27:03 :Alors, souvent, les 7 sont...Alors, regarde.Le 7,c'est pour élever les doublons.Est-ce que c'est uniquement avec les listes,ou c'est possible avec un dictionnaire ?
00:27:17 :Alors, regarde.Je tire un dictionnaire, par exemple.On va l'appeler.Tu vas voir.En plus, les gens font souvent l'erreur.Je ne sais pas.On va dire A est égal.
00:27:35 :On va mettre un B2.Si tu fais ça,tu vas avoir que tes clés.Quand tu fais ton 7 de Nico,tu vas avoir que tes clés.
00:28:01 :Là, je l'ai bien mon dictionnaire entier,mais quand tu fais un 7 de dictionnaire,tu n'as que tes clés.Du coup,dans les dictionnaires,on ne peut pas avoir deux clésqui ont les mêmes...
00:28:19 :Je ne peux pas avoir A et A aussi dans le dictionnaire ?Non.Ok.Je ne sais pas si c'est possible.J'ai pensé là-dessus,mais en gros, ça te perd toutes les clés.
00:28:31 :C'est assez rare.Je ne l'ai jamais vu, cette façon de faire.Tu poses la question, c'est marrant.Je l'ai déjà posé et j'avais essayé.Je me suis dit que ça ne va pas fonctionner,mais si, tu perds toutes les clés.
00:28:43 :Par contre, la question qu'ils vont vous poser,je pense que vous êtes OP.Si je fais ça,ça c'est bien le dictionnaire.Là, ici, c'est un 7.
00:28:59 :On va faire un printde type...Je ne sais pas si ça c'est bon pour vous.Si je fais ça...Là, c'est bien le dictionnaire,par contre, là, c'est un 7.
00:29:17 :Autre façon de définir le 7,on l'a déjà vu, c'est ça.Ils vont sûrement vous poser la question,parce que c'est les questions qui arrivent très vite.
00:29:25 :Parce qu'en fait, si on vous pose des questions,ça va monter assez crescendo.Vous allez avoir en gros comment...Est-ce que ça, c'est un dictionnaire ?
00:29:33 :Est-ce que ça, c'est un dictionnaire ?Ils vont bien penser que ça, c'est un dictionnaire,mais ça, c'est un 7.Il y a une session où il y avait eu des mélanges là-dessus.
00:29:45 :Pour les exercices,j'ai envie de passer sur le...Ouais, alors...Assez important, celui-là.Ici, il faut utiliser, du coup,le module collection.Je vous laisse lire la consigne.
00:30:07 :J'ai eu des questionssur le dosa, sur le module collection.Ici,ils veulent qu'on retournele nombre d'occurrencesde chaque mot dans une chaîne de caractère.
00:30:23 :Sauf qu'ici, il y a un petit peu de transformation à faire.En fait, vous ne pouvez pasle faire comme ça.Et il y a bien écrit de ne pas se faire compte de la casse.
00:30:33 :Là, en gros,ça vous permet de vous entraînerà utilisercounter.Est-ce que vous, vous avez déjà une idée de comment le résoudre ?Vous l'avez déjà résolu, ou ça vous paraît compliqué ou pas ?
00:30:45 :Ici, ça s'appelle, à des choses de base,combiner.Attends d'abord que je regarde.Je ne m'en rappelle plus.Vas-y, vas-y, fais.C'est quoi ça ? Vous devez écrire.
00:30:59 :Tiens, je vais, hop là.On va la mettre en français.Juste une fonction qui compteles mots.Ce n'est pas très compliqué, ça.Ouais, alors aveccounter, du coup, tu as une idée du coupde comment on peut partir ?
00:31:21 :Utiliser la classe counter.Ah non, je ne connais pas la counter, celle-là.Celle-ci.Alors, c'est quoi ça ?C'est quoi ça ?C'est quoi ça ?
00:31:33 :C'est quoi ça ?Je ne connais pas la counter, celle-là.Alors, ok.C'est important, ce module-là, il est super important.A ce moment-là, est-ce que les autres,vous avez une idée comme ça, ouon voit direct commentça fonctionne ?
00:31:49 :Il ne faut pas écrire ?Une boucle ?En gros,là, en fait, les buts,je ne sais pas sij'ai mis là,important,il faudra aller pour le Toza, relire ça.
00:32:05 :Je vous le mets dans le lien.Il faudra aller relire, ça vous permet de réalisercet exercice-là, en gros.Dans la consigne, il y a bien écritqu'il ne faut pas tenir comptede la classe, majuscule, minuscule.
00:32:21 :Je vais faire quelque chosepour vous montrer sivous faites...Comment je vais vous faire ?Comme ça, tiens.Vous voyez, en fait, si vous utilisezle counter comme ça,vous allez avoir un...
00:32:43 :En fait, il va prendrechaque lettrede la chaîne de caractère, de cette chaînede caractère-là.C'est pour ça qu'avant,il faut faire une transformationsur...
00:32:59 :En fait, sur la chaîne,il faut bien qu'elle soiten minuscule,et il faut faire un splitpour transformer ça enun itérable, donc en une listeavec les mots.
00:33:13 :Parce que si vous utilisez counter directementsur la chaîne de caractère,lui, il va vous compter chaque...Il va vous faire un compte de chaque mot,chaque lettre, je veux dire.
00:33:23 :C'est pour ça qu'il fautpenser à faire un point loweret ne plus avoir de majuscule.Ça touche en minuscule, et ensuite vous splittez.Là, par exemple, si on est bien...
00:33:33 :Je vais faire un point de ça.Voilà. Là, on a bien...Donc ça, c'est le retour, on s'en fiche.Mais là, ici, j'ai bien fait un split.
00:33:43 :Donc ça, c'est des choses de basequi vont vous demander aussiau Tosa. C'est savoir faire des splitsdu count aussi,j'ai eu. Donc savoir faire des splits.
00:33:53 :Donc là, ici,j'ai bien fait mon split sur ma chaîne de caractèrequi est là. Donc bonjour tout le monde.J'ai ma liste.Et ensuite,vous allez utiliser le module counteret vous allezenvoyer dedans votre liste.
00:34:09 :Et en gros,et en gros,ça va vous créerun objet counteravecdu coup chaque mot,le nombre de fois où il y a le mot.
00:34:23 :Voilà.Donc c'est pour çaque c'est important de bosserce module collection parce que ça,vous allez y avoir le droit aussi.Je crois que j'ai bien euune ou deux questions dessus.
00:34:37 :Il y avait 25-35 questions.Mais j'ai bien eu une ou deux questions dessus.Est-ce que vous voulez qu'on revienne plus en détail dessusou ça va aller ?
00:34:45 :Moi, ce que j'ai mis surl'expression,l'expression,c'est deux méthodes d'une derrière les autres.Les minuscules et puis le split.Ah oui, tu peux enchaînerl'over et splità la suite.
00:35:03 :Et ça, avec d'autresméthodes qui peut être autre chose.On peut faireun peu la même chose ?Je ne sais pas.Je ne sais pas.
00:35:17 :Je n'ai pas de trucs en tête.Je n'ai rien en tête là pour ça.Oui, j'essaie de réfléchir.Attends.Tu peux fairedeux replace par exemple.
00:35:39 :Si tu veux, sur une chaîne de caractère,tu veux enlever la lettre Aet replacer.Replace, tu peux.Replace, tu peux.Même si tu as une classe,je ne sais pas, imagine que tu asune classe, je ne sais pas,une classe nombreoù dedans tu fais ajouter, multiplier,
00:35:59 :afficher, tu peux faire à la fois plusieurs ajouter,plusieurs multiplier, plusieurs afficher, voilà.Ça, c'est possible.Ok, ok.Je vais chercher des exemplesaprès autre que ça.
00:36:11 :Et puis à la suite,on peut faire aussi, par exemple,des chaînes de caractère avec des majusculesqui sont mis un peu n'importe comment.On peut tout mettre en majusculeet faire un capitalisme derrière aussi.
00:36:23 :Ça peut être un exemple.Ah ben, tu peux très bien voirun capitalisme.Ok.Oui, il n'y a pas de problème.Il n'y a pas de problème.
00:36:35 :Donc là, c'est vraiment des choses de basesur lesquelles ils vont vous poser des questionsLe lower, je sais plus, mais peut-être.Mais en tout cas, le split,je l'ai eu à l'entraînement et je l'ai eu aussivraiment au jour de l'examen.
00:36:47 :Et en plus, le split,ils vont vous faire des petits trucs, des petites blagues.Genre, ils vont faire des splitssur un espace,un chaîné d'un mot.
00:36:57 :Donc le split,c'est bien de le connaîtreet de voir comment il fonctionne.Et counter aussi.Donc c'est pour ça que c'est important,de bien faire des exercices là-dessusparce que vous allez l'avoir.
00:37:11 :Alors du coup,je reconvertis ici en dictionnaireparce que mon compteur ici, c'est un objetcounter. Dans la consigne, on veut un dictionnaire.Sinon, c'est bien,ça reste bien un objet counter.
00:37:23 :Voilà.Donc ici, c'est pour ça que je le convertis.Voilà. Ça va aller pour ça ou pas ?Non.Ok. Je vois les petits pouces
00:37:37 :qui se lèvent.Mathieu aussi. Ok.Je vais aller sur le...Je pense que ça ne va pas pour Thibault.Je pense.Je rigole.Je le taquine. J'essaye de le taquiner.
00:37:57 :Une autre chose qu'il faut savoir faire aussi,c'est lire des...lire des fichiers.Est-ce que pour tout le monde,vous savez utiliser json.loadsou lire des fichiers avec Python ?
00:38:13 :Les fichiers textes par exemple.Ou est-ce que vous voulez qu'on vienne là-dessus ?On veut bien le rappel sur les fichiers. Ok.Ok.Ok.C'est pour ça que je vais l'introduire là-dessus.
00:38:33 :Je vais créer en plus un fichier texte.On va le faire en live.On va l'appeler file.txt.On va écrire dedans...Voilà.Donc là, j'ai mon fichier.
00:38:47 :En fait, on va enchaînerplusieurs choses.Il y a un exercice.Donc là, on a vu counter.Json.En fait, le temps passe vite. C'est horrible.
00:38:59 :Il devrait faire 39.Donc ici,c'est un exercice où...Moi, je ne l'ai pas eu,mais il me semble qu'il y en a qui l'ont.
00:39:09 :Si Tibo l'a mis, c'est quasiment sûr.Il y en a qui ont eu le droitd'avoirun objet de json contenudans une chaîne de characters.
00:39:19 :Vraiment sous ce format-là.Alors ça, ça peut être un peu piègeparce qu'on ne le voit pas régulièrement.Je vais vous montrer ça tout de suite.
00:39:27 :On va le faire en live.Et comme ça, ça va enchaîner sur les fichiers.On va faire le lien sur les fichierset sur l'ouverture de fichiers.json.
00:39:37 :Mais là, on va travailler sur une chaîne de charactersqui contient ce fichier json.Est-ce que quand vous lisez la consigne comme ça,vous êtes perdu ou vous savez un peu par où commencer ou pas ?
00:39:45 :Parce qu'il y a un module qui est très importanten Python à utiliser pour résoudre ce problème.N'hésitez pas à ouvrir les micros,s'enlever la main et retrouver la main.
00:39:59 :Perdu.Je vais vous montrer ça.Donc il y a le module json.C'est en jsonet on fait le loadet dump pour écrire.C'est ça ce qu'on retient.
00:40:17 :C'est un fichier json.Je me rappelle bien.C'est une chaîne de charactersqui contient notre fichier json.C'est différent.C'est plus rare de le voir,mais je crois que c'est déjà tombé.
00:40:33 :C'est déjà tombé au Tozaet on peut s'y perdre.En gros...On peut la transformer.C'est tout.C'est juste une chaîne qu'on peut transmettrecomme on veut.
00:40:47 :En fait, quand tu as...C'est quoi ?C'est une série d'objets.Pour la transformer,on va avoir notrejsonString.On va l'appeler comme ça.En fait, tu peux la lireen faisantdata est égale àjson.
00:41:09 :Pour lire une chaîne de characters,c'est pour un loads.D'accord.C'est une fonction spécifique de json.C'est pas load.C'est un fichier qui enlève...T'as pas le S, c'est un load.
00:41:23 :Oui, d'accord.Je savais pas ça.Ce que je vais tenter de faire,c'est essayer de transformercette chaîne de characters comme un fichieret ensuite utiliser l'autre.
00:41:35 :C'est ce que je vais utiliser manuellement.Ouais, toi, t'auras envoyéla chaîne de characters.Tu l'auras travaillé pour l'envoyer dans un fichier json.Exact.OK.
00:41:47 :Là, l'exercice, c'est de récupérerpar exemple la valeur d'uneclé.En deuxième argument, il nous fautla valeur d'une clé.On va l'appeler Vou K, comme on veut.
00:42:01 :Et là, après, une fois que vous avezici votrechaîne de characters qui estlisible pour Python,tout est transformé.Ça va être transformé en objet lisible en dictionnaire.
00:42:13 :Voilà.Vous avez une idée de comment on peut lirela valeur par rapport à une clé ?Si par exemple, vous voulez la valeur...On met le cocher.
00:42:27 :Voilà.Voilà.Et là, si j'ai pas fait de bêtises... Ouais, c'est ça.Il y en a qui vont préférerl'approche sécurisée.Ils vont mettre un .get
00:42:41 :et ils vont utiliserla méthode .get pour que ça retournedans leur cas de problème. Mais en gros, c'est ça.Donc là, ce qui est important de comprendre,c'est qu'ici, il faut bien penser à loads.
00:42:51 :Je l'ai fait ici.Excusez-moi pour le bruit.C'est la campagne.Il y a un tracteur qui passe. Désolé.Donc voilà. Ici, j'ai fait ça.Ensuite, par contre, ce que Waliddisait, c'est que c'est pareil. Vous pouvez l'avoir aussi
00:43:11 :au closage, je pense, assez facilement.Vous avez un fichier ici,data.json. Donc là, c'est exactementla même donnée que tout à l'heure, mais dans unfichier json. Pas en chaîne de caractère.
00:43:21 :Du coup,Walid a donné la réponse tout à l'heure.Par contre, alors...Data.key... Ouais, ouais, c'est ça.Excusez-moi, je n'ai pas vu Mathieu.Du coup, vous avezune idée de comment fairepour lire du coup un fichier json ?
00:43:41 :Walid, toi, tu l'as dit.Est-ce quevous pensez tous au contexte managerou vous n'avez pas l'habitude du contexte manager ?Ça va faire le lien avecles lecteurs fichiers.
00:44:01 :C'est pour lire le fichier ?Pour lire un fichier json.C'est pour lire...Ou un fichier en général.Oui, c'est...C'est pour ça qu'on le vote ?
00:44:15 :Je pense qu'il y a le...Vas-y, vas-y.Allô ? Ouais, vas-y.Il y a le...Bon, j'ai oublié, ça fait un peu longtemps.Je ne touche pas à des fichiers, maisil y a le load,je pense. Voilà.
00:44:33 :Ou bien, voilà, le open, exactement.Le mode read.Donc, t'as le open, c'est ça.Donc, il faut utiliser un contexte managerou elle le referme avec un fichier.
00:44:45 :J'ai vu qu'il y avait aussi...C'est bon, celui-là, ou pas, du coup ?Oui, c'est ça.C'est celui-là que je parlais, ouais.Et le read, du coup, t'allais dire ?
00:44:57 :Oui, la même chose.Ouais.Le dossier et puis le mode.C'est ça. En fait, du coup, là,vous avez vu, juste avant,on bossait avec une chaîne de caractères qui contient un JSON,on utilisait le load, mais on n'avait rien à ouvrir,en fait, on avait une chaîne de caractères. Là, ici,
00:45:13 :on va devoir ouvrir un fichier. Donc là,c'est différent, on va devoir utiliser le contexte manager.Oui, c'est open.R pour être en lecture.Et je viendrai sur les différents modes d'ouvertureaprès. J'allais lâcher le mot maintenant,
00:45:27 :mais on verra après. Donc, R pour être en lecture.Et ensuite, on peut lire notre fichier avecJSON.load, ce qu'il disait Walid. Ici, il n'y a pas besoin du S.
00:45:33 :On va utiliser la fonction loadparce qu'on va lire un fichier et pas une chaîne de caractères.Et donc là,c'est le même principe que tout à l'heure, on faitun data.get, et puis
00:45:43 :on peut lire, en fait, par rapport à notre clé.Voilà.Maintenant, on va s'amuser à lireun fichier.Tac.On va passer en dessous, on va mettre lecture de fichier.
00:45:55 :Ça sera pour le...Je vous ferai un petit repo si vous voulez tout ça.Alors,ça, c'est sûr, vous êtes quasiment sûr,vous allez l'avoir auTosa.
00:46:09 :Quand vous lirez un fichier, donc là, par exemple,j'ai un fichier texte.Donc, ça se rapproche, donc là, il y a écrit Bonjour tout le monde.
00:46:15 :Ça se rapproche beaucoup de ce qu'on a faittout à l'heure.Je vous laisse me dire, est-ce que vous avez déjà une idée commenton lit un fichier texte ?
00:46:25 :Il faut ouvrir le fichier.Il faut ouvrir.Tu mets le chemin du fichier.C'est ça.Donc là, on fait un arrache sans fonction.Le fichier, ensuite.
00:46:37 :Le mode d'ouverture.Parce que ça, c'est lecture,donc on met Read.Ensuite, alors, bon là...F, peut-être.F pour un alias.Maintenant,on lit le content dataF.read, je pense.
00:46:55 :C'est ça.Et en gros, après,vous pouvez facilement...Et si tu veux lire par ligne,Readline.Oui, c'est ça.Il y a eu des questions sur la Readline,mais là, on a bien du coup...
00:47:11 :Bonjour tout le monde.On a bien ouvert un fichier.Les différents modes d'ouvertureet d'ouverture,c'est-à-dire,les différents modes d'ouverture.Il faut penser que vous avez le mode R.
00:47:27 :Je vais me l'écrire là.R, c'est pour en lecture.Hop là.Lecture.Ça, c'est un petit rappel.Vous avez W.C'est pour écrire.Pour rappel.
00:47:53 :Voilà.Donc voilà.Vous avez les différents modes là.Après, il y a des modes spécifiques.Je crois que j'ai eu un doute.J'ai eu la question.
00:48:05 :Je ne me souviens jamais.Ils m'ont posé une questionsurle R+.Vous avez un mode R+.Ce n'est pas une blague.En fait, comme il y a un autre mode,R+, en fait,je vais vérifier sur mon côté.
00:48:23 :R+, c'est pour pouvoirà la fois le lire et écrire dedans.Je vérifie.Hop là.Ah oui, je vois.Je pense qu'il y a A+.
00:48:41 :Je ne savais pas.Le plus, moi, ça me...C'est ça, en fait.Ça fait les deux en même temps, en fait.Ouais, c'est ça.En fait, avec le R+,tu peux te faire un...
00:48:55 :Un read et un writeen même temps.Et puis après, tu peux faireun F.writeet tu mets la suite.Voilà. Et normalement...Forcément, si je ne le relis pas...
00:49:11 :Ah, il faut que je le relis.Ouvre ton data.Est-ce que je peux faire un F....Parce que là, je suis à la fin du curseuret normalement, ça va me l'écrire au début.
00:49:21 :Attends. J'ai un doute.La suite.C'est ça.On écrit et après, on lit.Voilà.Moi, du coup, j'ai une questionsur ce mode. Je ne m'y attendais pas.
00:49:35 :Franchement, je n'étais pas prêt.Je remets le chat.J'ai eu le droit à une question sur les modes d'ouverture.Le mode R+.Il faut savoir que vous pouvezécrire et lireà la fois.
00:49:49 :Je vais mettrelecture plusécriture.Pour les ouvertures de fichiers,il faut savoirouvrir un fichier avec Python.C'est avec le Context Manager.Vous allez avoir des questions là-dessus.
00:50:05 :Comme disait Walid,vous avez aussi une autresérie de lines.Readlines.Pour lire,normalement, ça se retourne sous formede liste.Readlines,ça le lit de tête.
00:50:23 :Ligne par ligneà chaque itération et Readlines,ça retourne une liste des...Je vais enlever ça.C'est ça. En fait, si vous avezplusieurslignes sur un fichier, ça va vous lemettre sous forme de liste.
00:50:41 :Voilà.Donc voilà.C'est important de savoir utiliser le Context Manageret pour ça, si vous faites les testsde compétences sur Docstring,il y a plein d'exercices là-dessusau niveau des tests de compétences,au niveau de la catégorie Toza.
00:50:57 :Je ne sais pas pour ceux qui l'ont déjà fait.Vous avez la blinde,vous les enchaînez et vous allez voirqu'après vous n'êtes plus scopé.
00:51:05 :Est-ce que ça va pour l'ouverture de fichiers ou pas ?Mathieu, Claude, ok.Super.Je t'ai dit, il faut demander à Thibault.Est-ce qu'il nous écoute, Thibault ?
00:51:25 :Je ne sais pas.Je vais décommenter tout ça.Donc voilà.On a vu l'ouverture de fichiers.Ça, je vais le commenter.Je viens d'en revenir, évidemment.
00:51:40 :Voilà.Donc bien faire les tests de compétences.D'ailleurs, je ne sais plus sur quelle catégorie c'est.C'est là-dedans, tac.Test et ça doit être dedans.
00:51:54 :J'ai un doute, je ne sais plus.Dans un des tests, il est dansstructure, données, objets.J'ai un doute.Je vais regarder si je ne le vois pas.
00:52:07 :Non, ce n'est pas là.C'est danslangage et syntaxe.Celui-là...J'ai un doute, je ne sais plus.Bref, il y a une catégorieoù vous allez avoirles différents modes d'ouverture.
00:52:23 :Pour ça, il enchaîne plein d'exercicesà vous faire bosser.Read, readlines,json, et voilà.Sur quoi vous voulez qu'on va...Est-ce que vous... Du coup, sur le module
00:52:36 :compteur, important, j'ai eule droit aussi, c'estle défaut dict.Est-ce que défaut dict, ça vous parleou pas du tout ?Non, du tout.
00:52:48 :Alors, ça, c'est des points faciles.C'est juste que si on ne connaît pas,on ne connaît pas, et du coup, c'est mort,on passe à la suite.
00:52:56 :Mais le défaut dict, c'est...Le défaut dict, en fait,c'est un appareil, c'est ce que j'ai misle lien plus haut, c'est sur le modulecollection.
00:53:07 :En gros,OK, bon, là, c'est bien,il explique.En fait, sur un défaut dict,je ne sais pas, quand vous allez...Quand vous allez avoir une cléqui n'existe pas...
00:53:22 :Ouais, je pense qu'on peut dire comme ça.Je vais vous le mettre en exemple.Je vais vous montrer un exemple plus tôt.Ce sera plus simple.
00:53:31 :Ici, je ne le montre pas, nickel.Donc là, on va avoir un dictionnaire.On va avoir, je ne sais pas,quelqu'un...On va mettre des nombres, comme un peu l'exemple à Thibault.
00:53:43 :On va dire, là,ça correspond à Wally.Ici, si vous faites un printde Nico,un,vous avez bien Wally.Maintenant, si vous faites deux,ce n'est pas possible.
00:54:04 :Il n'y a rien dans mon dictionnaire.Donc, le but d'utiliserun défaut dict, en fait,c'est de pouvoir...Je sais que moi,j'ai le souvenir exact de ce que j'ai eu à faire.
00:54:17 :Le défaut dict,ils vont vous le faire utiliser, si c'est comme moi,je ne sais pas si j'ai transmis une question là-dessus.Ils vont vous le faire faire utiliseravec une fonction.
00:54:27 :Moi, perso, j'ai utilisé défaut dictavec une norme d'A.Je vous explique.Je vous montre un exemple.Userest égal à users.On va respecter PayPay.
00:54:43 :Maintenant,si j'ai user,on va créer une clé,comme tout à l'heure, on l'avait dit,on l'avait valide.Si je fais bien un printde user stack 1,pas de soucis, il est valide.
00:55:01 :Maintenant,voilà. Tout à l'heure, on avait une erreur.Maintenant, non, c'est marqué anonyme.C'est intéressant.D'accord.Je vois l'utilité. C'est intéressant.En plus, c'est intéressant. C'est ça qui est génial.
00:55:21 :En gros, ici,j'utilise mon défaut dict du module collection.Après, on peut très bien fairefrom collectionimportdéfaut dict. Vous avez la question là-dessus
00:55:33 :comment importerles objets des modules.Ici, je l'importe directement.Ici, from collection import défaut dict.Ici, j'utilise justementdéfaut dict, une lambda,et j'utilise anonyme comme chaîne de caractère.
00:55:49 :Ce qui fait que si j'appelle une cléqui n'existe pas, automatiquement,ça va me retourner. Ça va me créer la cléen fait, avec anonyme.
00:55:57 :Là, si je fais un printdeuser carrément.Mais est-ce que tu peux supprimerlambda ?C'est quoi l'utilisation qu'on peut utilisersans utiliser lambda ?
00:56:11 :Regarde.Attends.Regarde, regarde.Je sais pas. Parce que moi,il fallait que je passe par une fonctionle jour duTosa.Du coup, c'est pour ça que j'utilisais une lambdade cette manière-là. Je vais te montrer.
00:56:29 :Le défaut dict, il est où ?Est-ce que je l'ai pas passé ? Non.Chaine map.En bas.J'ai oublié qu'il y avait ledéfaut dict.
00:56:45 :Tu vois, en fait, le défaut dict, tu peux l'utilisercomme ça. En fait, tu vas créer ton dictionnairecomme ça, ton défaut dict.Si tu passes une liste, en fait,si t'as une clé quin'existe pas,ça va te ficher une liste vide, en fait.
00:57:01 :D'accord.Et je crois que dans le...Est-ce qu'il parle ? Non,il en parle pas avec un lambda.Si je regarde là, par exemple,il dit qu'il n'y a qu'une lambda.
00:57:13 :La clé n'existe pas, ouais.Moi, perso,lors du Tosa,j'ai eu le droità une fonction. Il devait avoirun...Je sais plus, un truc genre... En gros, elle était comme ça.
00:57:27 :Passe. Et maintenant, il te disaitécoutez,sur la consigne,c'est maintenant qu'il faut créer un...Je sais plus si c'est undéfaut dict ou que ça te retourne une valeur,que tu perds par défaut. Il faut que cette valeur soit
00:57:41 :anonyme ou je sais plus, un truc dans le genre.Bon, du coup, je me suis dit, là, c'est pour ça qu'il faut connecter.Il faut connaître le défaut dict.
00:57:47 :C'est pour ça que je suis partijustement sur un défaut dict. Hop.Une lambda.Anonyme.J'ai juste fait ça.Ensuite, en plus, il faut...Après, ils testent ton code.
00:58:03 :Tu fais un espace de lecture.Si ça passe, tant mieux. Et hop, j'ai eu le point.Ah, j'ai pas vu la question de Mathieu.J'ai pas vu la question de Mathieu.
00:58:21 :Merci Thibault. Bien vu.Un objet calable, ouais.Bon, Thibault t'as déjà répondu du coup.De toute façon, si tu le fais juste avec anonyme,tu verras que...
00:58:33 :que ça passe pas.Tant rien n'y arrive.Donc, voilà.Donc, le défaut dict, ça, j'ai eu le droit.Ensuite, il me semble que j'ai eu du...
00:58:43 :Ça va pour vous, d'ailleurs ?Ouais, ouais, ça va.Oui, ça va, hein.Ça va.Est-ce que je passe sur...DEC ou pas DEC ?
00:59:01 :OK.DEC, OK.Je suis où ?Voilà.Le help, en plus,le help,ça va être votre seule façon, je crois,quand vous avez un oubli de...
00:59:25 :L'autocomplétion, elle est pas top, je trouve.J'ai envie de poser un. Je sais même plus s'il y en a une, d'ailleurs.Mais il faut connaître.
00:59:31 :Oui, le défaut factory, c'est...C'est ce qu'on appelle un calable, justement.Mathieu, du coup.Est-ce que vous connaissez, du coup,toujours dans Collection,parce que ça, je crois que j'ai eu le droit aussi.
00:59:47 :C'est...C'est...Il y en a deux que...Il y en a pas mal, là.Que je voulais voir encore.Tant qu'à ce que je parle.
00:59:59 :Est-ce que je l'ai mis là ?Je l'ai mis où ? Je ne le retrouve plus.Ça.Pareil, module Collection.Alors, on va faire...Collection.
01:00:13 :Tac.Est-ce que vous connaissez ça ?On va l'appeler deck.Non, au moins.OK. Eh bien, ça, c'est pareil.Ça, c'est pareil.Le jour de...
01:00:31 :Du Toza, vous vous inquiétez d'y avoir le droit.Bon, là, c'est un exercicequ'il y a. Je vais un peu plus vite parce queil est déjà 21h. Mais, en gros,
01:00:39 :je ne vais pas vous prendre tout le temps.En gros,quand vous voulez supprimer un élémentd'une liste,donc, si vous faites un pointun point pop, donc, imaginezque vous avez votre liste ici.
01:00:53 :Vous faites un pop.Ne vous souciez pas de la...de toute la fonction. On va même...Ici, pour l'instant, faire ça.J'ai une liste.Un, deux,trois.
01:01:09 :Ici, je fais liste pointpop. Hop là.Est-ce que j'ai cette table-ci ?Et on va faire un printde la liste.Ici, j'ai bien suppriméle dernier élément.
01:01:25 :Ensuite, si je recommence,j'ai envie de supprimerle premier élément, je fais ça.Ici, on va avoir un problème.On a bien supprimé le premier élément,mais ce n'est pas très optimisé.
01:01:37 :C'est pouren venir iciet je vous mets le lien.C'est important aussi à dire.La complexitéalgorithmique, je veux dire.En fait, si vous faites un pop zérocomme ça sur une liste, imaginezque vous avez une liste avec des milliers et milliers d'entrées.
01:01:57 :La liste, elle va tout redécaler à chaque fois.On a unecomplexité qui va être de O N.Voilà, c'est ça.En fait, O N, c'est qu'en gros,plus vous avez d'éléments, plus ça va être long.
01:02:13 :Voilà.Il y a un moyen plus optimisé de faire ça.C'est en faitici.Au lieu de faire un pop zéro,c'est d'utiliser l'objetdu module collection.
01:02:27 :Donc, vous lui passez votre liste.Donc là,cette condition, c'est juste pour le faire plusieurs fois, maisne vous en souciez pas.Au lieu de faire un popici tout à l'heure, je faisais un popzéro.
01:02:41 :Ça, c'était pas optimisé.Vous faites avec vecpop let et ça va enleverle premier élément de votre liste.Et ça, il y a une complexité algorithmiqueau 1.
01:02:55 :Ça veut dire qu'en gros, peu importe le nombre d'éléments qu'il y auradans votre liste,ça sera toujourstrès rapide.Pour avoirdes milliers d'éléments,ça sera toujours aussi efficace.
01:03:09 :C'est ce que je veux dire.Pour ça, il faut utiliser un objetvecet passervotre liste dedans.C'est pour travailler en gros.Si vous posez la question,je crois que je l'ai eu,c'est pour travailler à chaque fois sur desbouts de liste, des débuts de liste,à chaque extrémité.
01:03:31 :Ça vous permet, en gros,de faire pop pour la finde votre liste et pop leftà gauche de votre liste,pour supprimer le premier élémentde votre listede manière efficace.
01:03:45 :C'est-à-direque cette collection,l'accès est sur les deux côtés,du début et de la fin en même temps.L'accès est direct.C'est pour travailler vraiment sur le début et la fin de la liste.
01:03:57 :D'accord.Parce que si tu fais un pop,comme je l'ai montré tout à l'heure,sans deck,ta liste va tout décaler à chaque fois de 1, 1, 1.
01:04:07 :Ça va être tout à gauche d'un coup.Mais avec pop left,en utilisant deck, pas du tout.Ça va être super efficaceet une complicité logarithmique au 1.
01:04:17 :C'est-à-dire instantané.Ça ne va pas dépendredu nombre d'éléments que tu as dans ta liste.Oui, et sur tes performances,ça joue un coût énorme.
01:04:29 :Je pense qu'on va avoirune petite question là-dessus.C'est pour ça que le modèle de collectionest assez important.On a vu que dedans, il y avait l'objet deck,il y avait l'objetcounter,eton a vu aussiqu'il y avait le proposite.
01:04:49 :Voilà.C'est bon.Pour lepop left,je n'arrive pas à comprendre peut-être.Je veux savoir,quand on a une liste simple et on metpop,disons quesi tu metspop 0, il enlève le premier élément de la liste.
01:05:13 :Oui.Voilà,c'est une liste.On va en faire unebasique.Dis-moi, vas-y.Quand on met pop 0sur la liste,Ok, alors tu vas voir.
01:05:31 :On va faire une listeoù on met0.Il enlève le 1.Ok.Maisce que je veux savoir, est-ce que,comme tu m'as dit,le pop listn'a pasune complexité algorithmiquecomme le pop.
01:05:57 :Je veux savoir si c'est en fonction des indexou en fonction du contenu.Ici, on a mis pop 0.1 est la portion de 0,le premier élément.
01:06:07 :0, c'est le premier élément, je suis d'accord.Oui.Quand on met pop list,c'est quoi la différenceles deux ? Quand on met pop list
01:06:17 :avec le deck.Oui, avec le deck, oui.En fait,ce qui tourne derrière,je l'avais lu, je ne l'ai pas retenu,comment fonctionnent les rouages de pitonsvraiment en arrière-plan.
01:06:31 :Par exemple, là maintenant, je vais transformer ma liste.Je peuxte répondre,sur ce genre de truc,c'est juste l'optiond'optimisation du code.Lorsque tu vas supprimer un élément,tu dois décaler toute ta liste.
01:06:47 :C'est-à-dire quetous les éléments qui étaientaprès cet élément,tu dois les décaler manuellement.C'est ce quepiton va faire, manuellement.Lorsque tu supprimes cet élément,il va supprimer l'élémentet ensuite,c'est une opération de plus,tous les éléments. Par contre,
01:07:09 :avec la collection,quand tu utilises Dequeux,c'est qu'en utilisantcette collection,ce type de collection, l'accèsest immédiat sanssecours supplémentaire. C'est-à-dire qu'il va supprimer
01:07:23 :le premier si tu le souhaiteset il va supprimer le dernier si tu lesouhaites, sans décaler toutela liste. C'est que tes performances,ça joue sur tout le temps.
01:07:33 :Ta liste, elle est gigantesque.Dans notre cas, c'est pas visible.C'est juste ça.Regarde ici. Là, on aenlevé 1.Si on prend 2,la position de 2, maintenant, c'est 0.
01:07:49 :C'est ça ? La nouvelle liste,je veux dire.Oui, la nouvelle liste2 revientà la position 0.Il a enlevéle 1 et décalé2 à la position 2.
01:08:05 :C'est ce que je te disais.Avec juste POP, 0,tu décales tout à chaque fois de 1.Si tu as 10 000 éléments dans ta liste,tu vas avoir 10 000 opérations qui vont se faire.
01:08:15 :Mais je pense que ta question, c'estPOP Left, en quoi il est efficace ?Exactement.C'est plus compliqué.Ce qu'ils ont codé derrière,c'est ce qu'ils appellent une listedoublement enchaînée.
01:08:31 :Quand tu regardes,pour te comprendre,je ne pourrai pas te répondre en détail,mais c'est une liste doublement enchaînée.Chaque élément va contenir des référencesà des moments précédents et suivants.
01:08:51 :Grâce à ces structures-là,tu vas avoir une opération en temps qui va êtrecontente. Ça va vraiment être au 1.Ça ne va pas te décaler.
01:09:01 :Si tu as 10 000 éléments, ça ne va pas te faire 10 000 opérations.10 000 décalages.Je comprends.C'est le système qu'ils ont fait avec DECKqui est la liste doublement enchaînéequi permet ça.
01:09:15 :D'accord.Je vous rassure, sur TOZA,ils ne vont pas vous attendre là-dessusen vous disantexpliquez-moi vraimentpourquoi c'est plus efficace.Est-ce que POPLESTest plus efficace que POPZERO ?
01:09:31 :C'est ça en gros.D'accord.L'élément suivantrestera toujours à l'index 0.Du coup ?C'est juste une liste de moteurs.Une fois qu'on enlève le premier élément,l'élément suivant, il devient 0même avec POPLEST.
01:09:49 :Oui, bien sûr.C'est un élément.C'est juste le moteur.Il va ré-indexer le toutmais beaucoup plus vite que POPLEST.C'est ça.C'est vraiment une question d'efficacité.
01:10:07 :C'est une question d'efficacité.C'est vraiment ça qu'il faut voir.Je vais vous ramener le résultat à la finmais c'est vraiment que ce sera beaucoup plus rapidequand tu travailles avec je ne sais pas combien de milliers d'éléments.
01:10:17 :Oui, je comprends.Tu n'as pas tout ce décalage qui se faitsi tu as 10 000 éléments, tu n'auras pas10 000 opérations, tu auras une opération.
01:10:25 :Oui.Il y a aussi des gaines de rapidité peut-être.Oui.Oui.Bon, on a vu pas mal de petites choses.Est-ce qu'il y a desdes choses...
01:10:41 :Juste pourvoir tout ceci,tu peux créer par exemple manuellementune liste, tu fais une boucle fort pour utiliserpar exemple 10 000 élémentset tu fais le testet tu peux utiliserun compteurpour vérifier combienton programme...
01:11:01 :Exactement.Tu vas voir vraiment l'effet.La performance.Avec mon PC, je n'ai pas trop osé le faireparce qu'il chauffe déjà avec FirefoxChrome plusPyCharm. Je ne vais pas
01:11:15 :trop le pousser.De toute façon, je pense que si tu metsbeaucoup d'éléments, je pense que tu verras.Tu te mets un...Tu te fais un timer ou un...
01:11:25 :Il y a un décor acteurqui existe pour ça, je n'ai plus en tête.Je crois que c'est du moduleTime ou j'ai un doute, faut que je regarde.
01:11:33 :Je vous en dirai.Il y a une manière assez efficace de le faire.Oui, je pense que Kevin a donné ça une foisdans un de ses mentors.
01:11:41 :Pour avoir le tempsd'exécution d'une fonction peut-être.Je pense.Je dis que Kevin avait montré çalors des mentors.Le temps d'exécution.C'est indéquateur sur la fonction. J'ai oublié.
01:11:55 :Là, c'est un exercice pour ça.En gros, tu peuxte faire un timer.C'est Sleep.Tu te fais ton timerici ettu vas avoir ta fonction,l'argument que tu veux.
01:12:11 :Ici,tu dois te faire. Tu vas importer forcément pour ça.Il faut importerle module Time.Et là, tu vas te faireau début de ta fonction, tu vas te faire tonstart, ton départ.
01:12:25 :Tu te fais un Time.Ici,tu vas exécuter ta fonction.Et là,tu vas te faire ta fin.Je le fais un peu à l'arrache.
01:12:37 :Et tu vaste faire tonstart.Ok.Je ne sais pas si c'est ça.Là, tu peuxte permettre. J'ai dû le faire d'ailleurs.Est-ce quej'ai un Time ?
01:12:55 :Ici, j'ai mon Time.Après,je n'ai pas mon...C'est ça queje voulais vous montrer.C'est ça qui était intéressant.Donc la fonction, quand vous voulez faireun compteur, vous pouvez le faire comme ça.
01:13:17 :Mais il y a une autre façon encore mieux de le faire. Il faut que je regarde, j'ai un doute.Est-ceque vous savez ce que ça représente quand vous faitesun Time ici ?
01:13:25 :Les secondes.Parce que le temps,j'avoue, est un peu bizarre.C'est beaucoup de secondes.Je n'ai pas compris la question.Là, regarde.Quand tu fais un print de Time.time,
01:13:41 :c'est pour imprimerle temps actuel.Ok.Ça peut-être ressort ici un nombre de secondes.Ouais.Ça fait beaucoup de secondes.En fait, ça correspond...Je ne sais plus si j'ai eu le cas.
01:13:57 :Justement, dans Django, j'avais besoinde créer un tokenqui prenait en compte ce temps.Et en fait,ici, ça représentele nombre de secondes qui sont écouléesdepuis l'époque Unix.
01:14:11 :Donc ça veut dire que c'est le nombrede secondes écoulées depuis le 1er janvier1940.Je comprends.MaisleTime, là,c'est un milliseconde, je crois.
01:14:27 :Je ne sais pas.Là, tu as tes secondes et après tu as ton flowqui est...Là, tu es en seconde.Ah, d'accord.Ok.Et sinon, pour les...
01:14:49 :Quand vous avez une fonctionoù vous voulezcalculer le temps,ici,vous faites...Non.Time.C'est ça.Et en fait,pour avoir le temps d'exécution de la fonction,on faittimeit.
01:15:13 :Timeit, ici.L'import, je ne l'aime pas, je vais le mettre en hautparce que ça c'est un peu sale.Hop.Tac.Ici.Ça.Je vais le décommenter.
01:15:29 :Voilà.C'est ça.Il me semble qu'après,tu mets ta fonction.Il me sembleà supprimer.Je ne sais plus comment faire.Je regarde comment on fait.
01:15:45 :Tu mets juste ta fonction comme ça.Tu mets ta fonction.Il attend quoi?Euh...Faut que je reprenne un peu le...Je pense qu'il faut des arguments, forcément.
01:15:57 :Donc, il lanceen même temps le timer,l'exécution de la fonction.Hein?Je dis le time...Le timeit, là.Il lance en même tempsle timer pour compterle temps que la fonctions'exécute, en même tempsl'exécution de la fonction.
01:16:19 :Ouais, ouais, c'est ça.Il y a plusieurs choses à passer,mais en gros, vous passez ici votre...votre fonction.Euh...Donc, tu dois préparer une liste.
01:16:31 :Ouais, c'est ça.Après, tu fais ton...ton setup.Je sais plus.Je sais que tu peux le faire avec timeit.Là, je ne l'ai pas comme ça en tête.
01:16:43 :Moi, perso, je ne l'ai pas vu au Toza, déjà.C'était juste pour la petite info.Pour faire une fonction, il faudrait que je vous regarde en détail.
01:16:49 :Mais vous pouvez le faire avecce module-là.Timeit, ici.C'est possible de le faire comme ça.Ou après, vous mettez un timeravec un start en début de fonctionet un end avec un time.time.
01:17:03 :OK, merci.Je ne me dirais pas que tu aurais pumettre beaucoup de données, mais...Donc, voilà.Est-ce qu'il y a des choses que vous voulez voir?
01:17:13 :D'autres choses?Ça va.Je ne vois plus.Il y a un chat.Pour moi, ça va.Juste,il faut réviser ce genre de trucs.Ouais, c'est pour ça.
01:17:31 :Le problème, c'est quej'ai maintenantl'habitude d'utiliser Copilotà tout rôté.C'est ça.J'avais une questionlà-dessus, Copilot.Parce que je ne sais pas,s'habituer à Copilot,est-ce que ça n'a pasdes effets secondaires?
01:17:55 :Moi, je l'ai, perso.Je désactivepersonnellement.Exactement. La majorité des développeursmaintenant l'utilisent.Je te donne un exemple simple.Tu veux créer une listeavec des exemples.
01:18:11 :Lorsque tu vas juste écrire le commentaire« liste avec des éléments »,lui, il te donne.C'est plus simple.Oui, c'est d'accord.C'est vrai sur l'impact.
01:18:23 :Quand tu ne maîtrises pas,là, ça devient catastrophique pour toi.Parce que tu ne vas rien apprendre.C'est le malheur.Mais côté performance,c'est bien différent.
01:18:35 :Tu passes 50 foisplus vite peut-être.Je veux dire,même si tu connais,ça ne te pousse pasà oublier quelque chose, des trucs.Mais on est dans l'époqueet l'ère de l'intelligence artificielle.
01:18:55 :Oui, c'est vrai.Malheureusement, soit tu l'utilises,soit tu ne l'utilises pas.Oui, c'est vrai.Mais tu peux aussi désactiverla compression.Oui, bien sûr.Moi, je l'utilise comme ça.
01:19:11 :Je pose seulement des questionsquand il y a une méthode.J'ai oublié la syntaxequi me rappelle comment je dois l'écrire.Autrement, j'essaie de tout fairesans la compression de copilote.
01:19:23 :En fait, c'est bienpour les trucs chiants qui sont longs à écrire.Moi, j'utilise beaucoup Exangopour les tests.J'écris mes tests, du coup,j'utilise pas mal copilote.
01:19:35 :Oui, les tests unitaires.Oui, c'est pratique.C'est un peu long à la longue.C'est un peu barbant,donc j'utilise copilote pour mes tests.Même s'il n'est pas parfait,du coup, il faut les récréer d'arrière.
01:19:49 :C'est toi qui avais une questionsur les co-resets ?Oui, Django.Des fois, je me mélange dedans.Tu avais une question spécifiquesur les co-resets ?
01:20:05 :En fait,c'est...Comment je vais dire ?Je sais quand mêmeque dans les co-resets, tu peux faireles filtres,mais c'estcomment agencer ça à chaque foissur tes modèles.
01:20:23 :En fait, je ne sais pas.Je n'ai pas l'habitude d'abord.Peut-être que c'est ça qui donne aussi,mais des fois, j'ai du mal àappréhender commentles écrire, en fait.
01:20:35 :Ok.En gros, est-ce que...Est-ce que si j'ai...Est-ce que j'ai Django...Non, je n'ai pas installé Django.Il me faudraitune...Attends, est-ce que j'ai pasune application simple ?
01:20:59 :Peut-être qu'on peut faire ça sur notre mentorat,peut-être. Je ne sais pas si c'est...Je regarde quelque chose rapidement.Ici, j'ai un blocposte. Ok, ok, ok.
01:21:11 :Alors, attends.Là, j'ai ouvert mon shellet on va faire fromblog.models...S'il vous plaît.Models import...Vous importez quoi, déjà ?Blog poste.Voilà.
01:21:35 :Donc,t'as tous tes postes,donc pour avoir tout,t'es d'accord ?Blog poste.Object, ok. All, je crois.Ok, donc là, t'as tous tes postes.
01:21:49 :Bon, là, j'ai tout.Est-ce que j'ai unpetit trait ?Attends. C'est quel ça,c'est le blog ? Est-ce que c'est celui que j'ai ?
01:22:01 :Attends que je réfléchisse vite fait.C'est quel modèle ? J'en ai tellement plus.Ouais, c'est le basic blog.Ah, voilà. Ok, c'est bon.Du coup, après, tu peux filtrer.
01:22:13 :Donc, tu peux très bien en récupérerqu'un. Donc, tu peux faireDonc, là, si tu veux que le premier,tu peux faire unblog poste.
01:22:23 :Object.First.Donc, first.Donc, là.First.Ok. Voilà.Donc, là, tu récupères ton premier article.Ok.Ok.Tu peux aussifiltrer en fonction. Parce que moi,
01:22:47 :tu vois, j'ai des articles qui vont êtrepubliés ou paspubliés, ici.Donc, si tu peux très bien faire un...Donc, là, c'est...On va l'appeler des articles publiés. On va faire ça.
01:23:01 :Est égale à blogposte.Object.J'ai du mal.Pointfilteur.Et ici, donc, ton champPublish, qui est là.On veut que ceux qui sont publiés.
01:23:19 :Et là, je n'ai queles articles qui sont publiés.Donc, évidemment, tous.Et tu pourrais très bien, ici,donc, avec Publish, j'ai tous les articlesqui sont publiés. Donc, bon.
01:23:33 :Fais pas gaffe, il n'y a pas de...Il n'y a pas de design. On est d'accord.C'était juste un test pour un mentorat.Donc, là, t'as tous les articles qui sont publiés.
01:23:43 :Et tu pourrais très bien faire...Il est où, mon terminal ?Tu pourrais très bien faire, surton coreset, donc,ce que t'as...On va le refaire comment ? Attends.
01:23:59 :On va reprendre depuis...Si tu fais un blog posteque tu comprennes bien.Object.Point filteur. Voilà.Point filteur.On republie. Donc, là,on veut ce qu'il y a de faux. OK.
01:24:15 :Mais tu peux très bien, du coup, sur un coreset, faire un update,par exemple.Publishedégal false.Donc, en fait, là, tu fais ton coreset,tu récupères, par exemple, tous lesarticles publiés,et tu fais un update pour les mettre à false.
01:24:33 :T'avais quoi comme question, par exemple ?Faut pratiquer, hein.Ouais, ouais, ouais.Mais je vois aussi des fois des filtres qui sont un peu,bon, complexes.
01:24:45 :Excuse-moi, vas-y. Dis-moi.Oui, je vois des foisdes filtres,surtout, qui sont un peu complexes.Genre, c'est pas...C'est pas supérieur,inférieur, des trucs comme ça.
01:24:59 :Ah, ouais, dans le détail.Ouais, ouais.C'est pas...C'est un peu...Bon, c'est pas...Ok, je vais prévoir un talk sur le Discord,à ce moment-là,où on peut se faire une session, peut-être demain dans la journée,si t'es dispo.
01:25:17 :Y'a pas de problème.C'est sur les gritterzans,les...Oui.C'est tout des filtres, là.Comment...Ou bien filtrer sur plusieurs colonnes,des trucs comme ça.
01:25:33 :Ok.D'accord. Eh bien, écoute, on va se prévoir ça,si tu veux.Ça tombe bien, parce que j'ai un...On va pouvoir le faireavec ça.
01:25:45 :Là, je traverse pas mal de relations, je...Ok.J'ai des vues où...Voilà. Par exemple, ça.Les start, les gritterzans, les trucs danger, par exemple.
01:25:57 :Oui. Effectivement, c'est ça.Ouais, ouais, ouais.Voilà.Bon, on verra ça, à ce moment-là.Ok, ok.Bah, écoutez, j'espère que c'étaitmon premier mentorat, donc...
01:26:11 :Voilà. Désolé.En plus, j'ai été...C'est pas une excuse, mais j'étais un peu malade cette semaine,j'étais pas dans le...Oh.Y'a du mieux quand même, hein.
01:26:23 :Ouais, non, début de semaine, c'était même pas la peine.Mais là, ça va beaucoup mieux.Ouais. Bonne guérison, alors.Ouais, merci.Ah, bah, Aurélie...Aurélie, tu nous as fait un petit test, là, non ?
01:26:35 :Ouais, c'est ça.J'ai fait juste avec 10 000.Donc, je vaispartager avec vous le code.C'est intéressant, hein.Vraiment, quand tuaugmentes, là, vraiment, côté performance,ça joue...
01:26:51 :Ça joue beaucoup, carrément.Des fois,ça devient très, très, très lentpour l'option classique.Ouais.Bon, voilà.T'as fait le timer, là, avec notre start timeet end time, c'est ça ?
01:27:07 :Yes. Ouais.Avec time hit, je sais plus comment on faitexactement. Je regarde. Je l'ai rarement fait.En général, moi, je fais plus comme ça,avec un start time et un end time.
01:27:17 :Avec un start et end.Donc, comme t'as fait là,t'as fait comment ? T'as mis un start au début, tac.J'aurais aimé...Ouais.Ben, merci tout le monde. Si ça vous a plu,
01:27:29 :c'est cool. Merci beaucoup.Merci également. Ouais, c'est...C'est bien. Merci. Merci beaucoup.Ouais. Ben, c'est pour ça,le module collection... Enfin, il y a tellement
01:27:39 :de choses à voir, mais le module collection,lisez l'article, relisez-le, et la complexitélogarithmique aussi.Relisez-le aussi,parce que vous allez avoir des questions sur est-ce que ça,c'est du ON ? Est-ce que ça, c'est du O1 ?
01:27:51 :Voilà. Ça, vous allez sûrement l'avoir.Ah, d'accord. Et des questions sur lacomplexité, on aura ça sur...Ouais, quand tu tapesdans le... Je pense que c'était des questions que j'ai eues
01:28:01 :un peu plus avancées. D'accord.OK.C'est ce qui m'a permis d'améliorer mon score,mais je l'avaisbien, entre guillemets, bien lutout ça, bien appris, entre guillemets.
01:28:13 :Mais, s'il te plaît,Gabi,sur le code,tu nous as partagé l'autre jour aussi, non ?Je ne me rappelle plus.Non, c'est la première fois que tu fais un mentorat.
01:28:25 :Non, non, je parleparce que tu nous asdéjà présenté ce que tu as passélors de l'examen.Ah oui, bien sûr, oui.Bien sûr, oui.
01:28:37 :J'avais déjà présenté, ouais.D'accord. Donc, c'est lecode que tu vas nous partager, c'est ça ?Ouais, je vais essayer de nous faire un petit résumé de...
01:28:47 :Bon, les exercices, ça, c'estdes choses que vous avez surDuck String, maisje vais vous mettre ce quej'ai vu, ce qu'on avait vula dernière fois, Wally, tu as raison.
01:28:59 :Il y avait Thibaut aussi, on faisait ça à deux.Ouais, c'est ça.Bon, si je te fais ça demain ?Ça marche, même demain,l'après-demain, quand tu auras le temps,c'est pas très urgentà l'heure très, quoi.
01:29:13 :Et il y a des choses...Ouais, putain, c'est con,si on pourra voir une autre fois.Il y a ce genre d'algorithme-làà voir qui peut être intéressant aussi.
01:29:23 :Et si vous êtes chauds pour undernier algorithme, on peut le faire.Je ne sais pas si ça dérange Thibaut ouquelqu'un, mais sinon, on arrête là.
01:29:33 :Mais ça, c'est un algorithme que j'ai vu, par exemple.Oui, on peut voir ça rapidement.C'est pas mal.Ça, c'est une fonctionqui est en fonction, c'est...
01:29:47 :Une fonction en entrée,un paramètre et une fonction, c'est ça ?J'ai mis une matrix, mais là,c'est moi qui l'ai écrit, entre guillemets,la consigne, parce que je l'ai eu en tête.
01:30:01 :En gros, tu vas avoir une matricequi va te prendre en entréeune liste, deux listes.C'est une liste de listes.C'est le principe de matrice.
01:30:11 :Dedans, t'as que des boulets.True, false, ainsi de suite.Et en gros, il faut que tu retournesà chaque fois que c'est true,la position,les index sont gros.
01:30:23 :Donc là, tu vas avoir, par exemple,pour false,true, true.Ici, t'as bien 0,1, 2, donc tu retournes 1,2, parce que là, c'est true.
01:30:35 :Deuxième liste,true, position 0,false, false, donc on n'a qu'un slope.Ici, ça va bien se retourner0, 1,et l'arrière, parce que c'est false.
01:30:47 :Donc là, 0, 1.Pour faire ça,vous n'avez pas le droit de le faireavec NumPy,c'est trop facile.Tu peux le faire,merci la pub,tu peux le faireavec NumPy en trois lignes,mais t'as pas le droit,t'as le droit qu'aux bibliothèquesde Tosa.
01:31:11 :Donc, c'est pas gravesi ton...si votre cadre, il paraît pasélégant, optimisé, c'est pas grave,ce qui est important, c'est le résultat au Tosa.
01:31:21 :Donc, si vous êtes stressé, ne cherchez pas à faire des trucs de fou,parce que je sais que ça, tu peux le résoudreavec une lambda,avec une fonction map.
01:31:29 :Perso, aujourd'hui,le Tosa, pour ça, je sais pas,par exemple,c'est comme si vous aviez une idée d'avance,je vous laisse la main,sinon j'attaque.
01:31:41 :Et là, je le fais en liveparce que je n'ai plus eu le résultat,je l'ai fait peut-être,mais je vais le faire en live.
01:31:49 :Moi, aucune idée.Ok.Tu dois d'abord boucler sur chaque liste.Vous devez d'abord boucler sur chaque liste.On va appelerélément in matrix.Ici,je vais créer unesous-listevide.
01:32:09 :Ok.Ouais, c'est ce que je faisais.Non, je ne le fais pas ici.Pour retourner les index, tu vasfaire return index, c'est ça.Pour les index, alors ça, c'est pareil,il y a des trucs à faire, mais on n'aura pas le temps.
01:32:23 :Mais, important,pensez à utiliser des choses comme enumerate,les instances de l'ordre du Tosapour les algorithmes.Ça peut vous sauver la vie.I, V,In. Enumerate.
01:32:39 :Et là, maintenant, on va boucler sur les élémentsqui sont dans chaque sous-liste.Là,on boucle sur chaqueliste.On boucle sur notre liste, sur chaque liste.
01:32:51 :Et là, on va boucler sur les éléments qui sont à l'intérieurde la sous-liste. En faisant ça,on utilise enumeratepour récupérer l'index,et valeur pour avoir la valeur pour savoirsi c'est vrai ou faux.
01:33:03 :Donc,I, V, c'est pour dire, en gros,if true.Yes.Là, avant, je vais me faire une sous-liste.Return I.I, V,ici, je fais unsublist.
01:33:23 :Append. Et, en fait,je vais retourner l'index.Oui, c'est ça.Et...Franchement,je n'ai plus l'emplacement, mais ici,ce que je fais, c'est que je fais un résultat.
01:33:37 :Append.Et là, je vaisrajouter ma sous-liste,justement.Ça ne va pas...Pas besoin, tu faisreturn direct de l'index, puisquece qui te reste, c'est juste l'index.
01:33:55 :Ouais,c'est juste que je découpebien les choses.Ma sous-liste, moi, je la mettais icià la base. Attends.Non, ce n'est pas ça.Attends. Result for L
01:34:09 :in matrix. OK.Illuminate L.OK.Sublist. Append. On va rajouter icinotre index.Je ne sais plus...Je pense que c'est normal comme ça, je crois.
01:34:27 :On va exécuter.C'est une liste qu'on chercheà la fin.Ouais, ouais, ouais.Attends, je vais la reprendre de zéro.Parce qu'en plus de ça, vous avez...
01:34:39 :Enfin, je l'avais eu l'autre jour.Support. Elements dans la matrice. OK.I. Z.Là, ici, on récupère du coupchaque foisnos indices.J'initialise.Une liste est vide.
01:34:57 :Pas ici.Je pense que je la ferai plutôt là.Et je pense que si je la metslà, que je relie...C'est ça.OK. En fait, du coup, voilà.
01:35:11 :Quand on fait de tête, c'est...On s'habitue après à ce genre d'algorithme,mais la première fois que je le lis, franchement, je ne sais plus quoi faire.
01:35:17 :C'est chaud.Voilà.Ça ne paraît pas beau, franchement. Vous faites ça devant un employeur,je pense que ça passe peut-être moyen.Je pense qu'il y a plus propre à le faireavec une lambda et une fonction map.
01:35:29 :Là, comme ça, peut-être, je n'ai pas trop d'idées,mais ça peut se faire. C'est quasiment sûr.Non, je pense que c'est correct.Non, c'est l'algo classique, quoi.
01:35:37 :Là, ouais.Ça, ça passe.Le résultat, il est là. Il est bon.C'est ça, l'essentiel.C'est pour ça, hein.Pour le causage,je ne sais pas faire un truc de fou avec une map,une lambda, un machin, ce genre de trucs,essayer de vous complexifier.
01:35:55 :Moi, je découpe. Là, je me dis,je vais créer une nouvelle liste,et après, je vais me faire mes sous-listes.Si la valeur est floue,j'envoie son index dedans.
01:36:05 :Ça, par contre, je ne sais pas ceux qui débutent,je crois que c'est pour atteindreles niveaux experts ou avancés.C'est vraiment des trucs spécifiques.
01:36:13 :Donc, voilà.Ça marche. Merci, Gabi.Je voulais vous la montrerparce que celle-là, je sais quej'ai eu le droit.Et faites tous les exercices de Toza,parce qu'il y a le pattern graph models.
01:36:31 :C'est quoi,les exercices de Toza ?Quand vous allez ici, sur les exercices Django,on recommence.On est là. Django, vous descendez.Exercices Python, je veux dire.
01:36:43 :Vous descendez.Ici, tu as un tag Toza.Ah, d'accord. Je ne l'ai pas vu.Ah, d'accord.On en a fait quelques-uns ce soir.On a parlé par rapport à tout ça.
01:36:55 :Celui-là, je vous conseille.Vous allez marquer des points.Si vous le faites,apprenez le pattern par cœur pour remonterà un graph.J'en parlais avec un proqui était du même avis.
01:37:11 :Python.Il disait que ça, c'est le genre de pattern que si tu ne sais pas,tu ne peux pas trop le deviner comme ça.Le faire de tête, c'est chaud.
01:37:19 :Apprenez le pattern de comment remonter à un graph.Ça, j'ai eu le jour du Toza.Véridi.Le graph, c'est-à-dire ?Hein ?C'est-à-dire le graph ?
01:37:33 :Oui, tu as un graphqui ressemble à ça.C'est bon parce que je sais que tu peux avoir une...Ah, voilà.Ah oui, c'est ça. D'accord.
01:37:45 :Ils vont te mettre la consigne, ils vont t'expliquer.Tu auras des trucs comme ça, ça fait peur.Non, ça, c'est...C'est ce qu'on appelleles automates d'état finidéterministe ou non déterministe.
01:37:57 :On a déjà fait un mot quand j'étais étudiant.OK. Mais...Je pense que...On l'a fait, on l'engage sait.OK.Moi, j'en avais pas fait de graphcomme ça déjà, avant ça, donc je suis tombé là-dessus.
01:38:11 :C'était un peu...Non, c'est compliqué.C'est compliqué.J'avais chopé la logiquede créer mon dictionnaire en fonctionet d'être plus wild.Donc quand je suis sorti, j'ai réussi à le valider.
01:38:25 :Mais je penseque si vous apprenezle pattern par cœur, ça vous fera peut-être pas de malparce que c'est pas un truc qui est naturel, je pense.
01:38:33 :Alors monter un graph comme ça, tu vois, c'est pas forcément...Donc voilà.Merci, c'est intéressant.Voilà, voilà.Merci bien.C'est normal, tout le monde.J'espère vraiment que ça vous a plu.
01:38:47 :Je suis désolé que c'est ma première, donc des fois j'étais un peu...Non, c'est pas la première, c'est la deuxième.Non, c'est super, c'est super.
01:38:53 :C'est ça, ça a été très génial.Ça nous a permisde découvrir beaucoup de choses.C'est gentil. Merci, en tout cas.Merci.Et merci Thibault.
01:39:05 :Malheureusement, Thibault n'a pas compris ça.Malheureusement.Il est en train de se couvertir en ce moment.J'ai loupé un petit mot, oui.Non, mais c'est bien, c'est cool.
01:39:19 :Merci.Merci beaucoup, gars.Merci pour ton retour.C'est vraiment cool.Du coup, pour la semaine prochaine,il n'y aura pas de mentorat, c'est ça ?
01:39:33 :Si, si.Il faut que je vois avecKevin, moi, et puis Gabaussi, on va voir, on va rajouter.Oui, effectivement, on est déjà à la fin du mois.
01:39:43 :On va faire le planningpour le mois d'août.Il y en aura peut-être un petit peu moins que d'habitude,mais il y en aura quand même au grand minimumune par semaine. D'accord.
01:39:53 :Parce que déjà, pour la semainedernière, il y avaitles deux mentorats en même temps.Oui, oui, la semaine dernière,il y a euun clash, là, et effectivement,on va essayer de...
01:40:07 :Après, c'est aussi les sessions Discord,on avait décidé de les afficher aussisur la même page, parce qu'il y a quand même des trucsqui sont souvent intéressants, maison va voir.
01:40:17 :Là, je vois qu'effectivement, ils ont rajouté,il y en a une autre, le 31,qui est en double, enfin, avec lesmêmes heures aussi. Oui, c'est ça.
01:40:25 :Après, c'est les sessions Discord,donc c'est bon, qui sont disponibles.Non, le problème, c'est quele mentoring, c'étaitaux mêmes heures, et par la suite,moi, je suis resté,j'ai trouvé personne, je suis resté jusqu'àune heure, à peu près, c'était une heuremoins qu'un, je suis parti, et ils ont commencé
01:40:43 :après moi. Oui, oui, en fait,la semaine dernière, c'était vraimentun problème d'horaire,Kévin n'avait pas mis la bonne heure,il avait mis 19, et en fait, c'était à 20 heures,donc là, c'était vraiment un problèmesur cettesession-là.
01:40:59 :Désolé pour ça.Non, ça arrive.Ça arrive en meilleur.Merci, merci tout le monde.Merci, Gab.Vous me feriez une question surles mentorats Django, c'est ça ?
01:41:13 :Oui, effectivement.Si on pouvait faire une sessionlà-dessus, ça a beaucoup m'éclate.Je pense que Gab pourrait êtretout indiqué pour ça, on va en reparler.
01:41:23 :Ah, il n'y a pas de problème.Quand vous voulez, tu me disle jour, et ça, il n'y a pas de souci, on peut y aller.
01:41:29 :On va organiser ça, oui.D'accord, merci bien.Mais je dois, moi,faire mes cours avant,parce que je ne connais pas Django.Oui,c'est appréhendé, c'est assez lourd au début.
Aucune occurrence trouvée pour « ».
00:03:08
Introduction du mentor Gab
00:10:15
Module ABC (Abstract Base Class)
00:18:50
Exercice sur les nombres pairs distincts
00:27:08
L'utilisation des sets dans les dictionnaires
00:30:02
Module collections: Counter et DefaultDict
00:38:03
Lecture et écriture de fichiers
01:20:00
Question Django sur les querysets