Session du 10 juillet 2025 à 21h00
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
Réussir le TOSA Python : questions types
Exploration de questions types du TOSA Python, avec explication détaillée des réponses et des pièges fréquents, notamment sur les booléens et les classes.
00:00:43 :Du coup, on va partager l'écran déjà. On voit l'écran là ? C'est bon ? Oui. Ok,du coup là, pour ceux qui ne passent pas forcément le TOSA, mais il y en a qui comptent le passer peut-être un jour,juste représenter rapidement à quoi ça ressemble au niveau de l'examen en fait. En gros, sur Doctrine,
00:01:15 :en tout cas, il y a toujours un examen blanc et après l'examen final. Mais en gros, c'est 35questions, une heure et demie, il y a des QCM, il y a des propositions réelles entre elles etl'exercice de code. Et il y a cinq niveaux, il y a, comment ils appellent ça ? C'est initial,
00:01:34 :basique, opérationnel, avancé, expert. Et en gros, vous commencez l'examen, vous êtes au niveauopérationnel, au niveau des questions, et plus vous répondez bon, plus ils vous montrent en difficulté.
00:01:45 :Et donc, plus vous répondez bon en questions difficiles, plus vous ramassez de points.Alors, c'est sur 1000. Il faudrait bien avoir un 1000 sur 1000 et avoir 5 fautes. Vous l'avez déjà vu.
00:01:55 :Moi, j'ai eu 955 sur 1000, mais j'ai eu peut-être 8 fautes, par exemple. Donc, c'est possible.Donc, voilà. En gros, c'est ça. Et puis, c'est devant votre PC. Donc, forcément, pas de triche,
00:02:05 :pas de notes à côté de soi. C'est vraiment devant son écran. En gros, voilà pour le CLAUSA. Il y atous les thèmes et c'est vraiment du Python, librairie standard, on va dire. Donc, c'est pour
00:02:17 :ceux qui passent le CLAUSA, mais qui sont là juste pour remettre un peu un contact. Allez, une despremières questions. Bon, j'ai pris une petite mignonne. Bon, je n'ai pas mis la question, je voulais
00:02:28 :la faire en live. Du coup, ici, ils vont vous demander quelle va être la sortie, ici, le print de C.Alors, évitez d'utiliser pour l'instant la console Python ou un VSCode. C'est false. Ok,
00:02:49 :il y en a un qui a dit false. Moi, j'ai écrit aussi false. Il y a deux false pour l'instant.J'ai écrit aussi false. 3 false, ok. Est-ce qu'il y en a d'autres qui répondent? False. Ok,
00:03:06 :sûr et certain. Oui. Ok, non, c'est pour voir si j'arrive à mettre un petit doute. Bon, ok,celui-là a été facile. Ok, celui-là, c'est bien false, mais j'ai vu des erreurs dessus parce que
00:03:24 :ça perturbait un petit peu l'assignation et la comparaison comme ça, ça m'a perturbé quelques-uns.Ok, bon, celui-là a été mignon. Bon, les autres n'ont pas non plus très difficile en
00:03:35 :final. Celui-là, on va le mettre en markdown. Alors, attendez, est-ce qu'on voit bien mon écran?Est-ce que c'est un peu moyen là? Ça va. Ça va? Je crois qu'il manque juste une dernière chose.
00:03:48 :Ouais, ok. Bon, le dernier, on va le faire ensemble. Je vous laisse regarder les premiers.Alors, j'ai mis les solutions entre elles, mais elles ne sont pas bonnes forcément. Là,
00:04:03 :c'est quelqu'un qui avait faux. Je vous laisse regarder la classe. Et puis à ce moment-là,vous pouvez me dire au fur et à mesure, on va voir ensemble qui donne quoi.
00:04:11 :On est à quand vous êtes prêts? Bon, le MyBike.Color, du coup. Ok, attend, on voit bien. Ok,le Framesize ici. L? L? Pour tout le monde? On ne voit pas forcément le chat en plus. Tout le monde dit L ici?
00:04:53 :Une sortie peut être, genre le L, il peut être attribué à deux trucs ou pas? C'est à dire?Ah oui, oui, d'accord. Oui, dans le test Toutosa, ils peuvent très bien te dire,
00:05:15 :ok, je comprends ta question maintenant qu'on voit les propositions. Effectivement, oui.Ok, donc pour vous, c'est L? Oui, oui, pardon. Je l'ai contesté, ok. J'ai dit,
00:05:33 :un SourcePort, c'est très compliqué, c'est vraiment juste pour avoir des questions,mais ok, du coup, là, c'est bien L, puisque l'instance a accès à Tribus Classe. Ici,
00:05:40 :du coup, quoi? Là, la personne est faux sur l'exercice. C'est une erreur. C'est une erreur,je pense. Je vais regarder. La tribu n'existe pas, non? Moi, je mettrais une erreur. Ici?
00:06:00 :Ouais. Pourquoi? Moi aussi, je mettrais une erreur. Parce que la tribu n'est pas désignée dans laclasse. Après, je ne sais pas si on peut les rajouter comme ça, donc ça l'a volé. Et donc,
00:06:14 :voilà, le Toutosa, ils vont vous mettre des trucs assez, vous avez l'habitude de voir,ils sont assez simples. Ok, bon. Si tu me demandes, c'est que ce n'est pas une erreur. Il n'a pas
00:06:32 :trouvé ma bike pour le moment. Toutosa vient rajouter des attributs à la volée. C'est fortpossible. Enfin, c'est possible. Alors, attendez, un truc en même temps. Je réfléchissais un truc,
00:06:52 :je pensais à un truc en même temps. Comment on appelle ça déjà? Voilà, par exemple. Je vous lemets là en attendant sur les codes. Je cherchais le nom. Donc là, ça marche, on a attribué la
00:07:05 :volée et c'est fort possible. Est-ce que vous connaissez le slot ou pas? Le slot? Non. Ok,on va se laisser celle-là. Donc le slot, on peut le mettre en liste ou en tupple,
00:07:36 :peu importe. Qu'est-ce qu'on va dire du coup? Je ne sais plus s'il est framesize,il est déjà... Je pense que je peux faire comme ça. On va faire comme ça. Donc on a dit qu'elle
00:07:49 :est quoi comme couleur? Voilà. On va agrandir un peu le concept parce que c'est un peu ridicule.En gros, il est possible de définir des slots. Ça permet de limiter le nombre d'attributs que
00:08:15 :vous pouvez avoir sur votre instance. En gros, c'est que vous ne pouvez plus ajouter d'attributsdynamiques. Là, si j'enlève par exemple le slot, si je le commente, il n'y a plus d'erreur.
00:08:30 :Si je le mets tout de suite, erreur. Et en fait, ça permet de dire à vos instances,elles ne peuvent plus définir l'attribut à la volée. C'est que ce qui est défini dans le code.
00:08:42 :Je ne sais même pas si...Et du coup, ton framesize cause une erreur ou pas? Est-ce que si tu fais MyBike.framesize,ça cause une erreur vu que tu ne l'as pas mis dans le slot?
00:08:53 :Et bien, alors attends. Je vais passer par le mince. Ton framesize, quand tu l'as défini...Qu'est-ce que j'ai fait? Ah oui, forcément. En fait, l'erreur n'est pas levée dans tous les
00:09:11 :cas. Parce que tu peux avoir... En fait, c'est les attributs que tu vas définir après à la volée,au niveau de tes attributs d'instance. Voilà, je vais chercher le nom, attribut d'instance.
00:09:21 :Tu ne pourras pas compter dans ta classe. Oui, c'est bon, il n'y a pas de problème.Sinon, il t'aurait levé une erreur directe là. Parce que tout ce que tu fais dans une classe,
00:09:29 :c'est chargé automatiquement. Les attributs sont chargés dès le début,dès que tu lances ton programme en fait. Donc en gros, tu peux très bien avoir un attribut de classe
00:09:40 :L et avoir un slot avec deux colors dedans. Il n'y a pas de problème.Là, on peut changer color et on ne peut pas changer framesize dans le code par la suite.
00:09:54 :Ben là, en fait, le problème, c'est que si tu fais un MyBike ici... Tu veux faire quoi,dis-moi? Tu veux faire un framesize, par exemple, et t'égales à S ici. C'est pas possible.
00:10:09 :Parce que là, tu es au niveau de l'instance. Donc là, tu l'as bloqué.Donc si j'enlève mon slot, de toute façon... Il faudrait qu'il soit renseigné dans le slot,
00:10:17 :en fait. Oui, alors il y en a qui disent, je pense que oui, c'est effectivement vrai.Moi, je n'ai jamais eu l'occasion de m'en rendre compte à 100% que quand tu définis un slot commeça, tes classes sont plus efficaces niveau mémoire. Voilà, je ne sais pas. Je l'ai vu
00:10:39 :à plusieurs endroits et on me l'a déjà dit aussi. Donc bon, c'est une info en plus. Donc voilà.Est-ce que vous savez aussi... Je vais faire un truc. Je suis sur les classes, là. Ok.
00:10:53 :Hop là. Sans instance, est-ce que vous pensez que ça va? Prêtez le salut ou pas?Je ne sais pas dans l'unit, non? Ok. Et s'il nous le met, ça va le faire quand même.
00:11:13 :Non, t'es pas à mon âge. J'ai une instruction dans la classe. Alors moi, j'aurais dit non,parce qu'il n'y a pas de unit non plus. Et là, vous l'avez. Parce qu'il doit y avoir
00:11:28 :un unit par défaut dans la construction de classe. Alors l'idée, en fait, c'est que tousles attributs que vous avez dans les attributs class comme ça, quand votre programme est chargé,même s'il n'y a pas d'instance, tout ce qui est attribut class comme ça ici, c'est chargé debase. Est-ce que vous voyez ce que c'est? Il y a qui fait Django ici? Est-ce que vous avez déjà vu
00:11:51 :le reverse et reverse l'ID? Oui. Oui. Est-ce que vous avez déjà compris la différence entrereverse et reverse l'ID? Oui. Ok. Quelqu'un peut l'expliquer ou pas? Je pense que le reverse l'ID
00:12:13 :permet de mentionner une route par rapport à l'ID. Non, le reverse l'ID, c'est le reverseparesseux. Ça ne dit rien. En gros, quand vous avez des classes avec des vues fondées sur les
00:12:36 :classes, vous avez reverse l'ID et quand vous avez des vues fondées sur les fonctions, vous avezreverse. J'ai triché, j'ai vu la solution. Oui, vas-y. Le lazy, il s'active juste si on en a besoin,
00:12:50 :enfin quand on en a besoin. En gros, en fait, le principe de ce que je viens de montrer là,c'est qu'en fait, sur vos classes, dès que vous lancez votre programme, ce qu'il y a dans votreclasse, l'instruction ici par exemple, elle est directement exécutée. En gros, avec Django,
00:13:08 :quand vous avez des vues fondées sur les classes, du coup, le problème, c'est qu'on ne peut pasexécuter, entre guillemets, charger une route puisqu'en fait, le programme, enfin, comme c'estlourd, il ne peut pas charger un reverse tout de suite parce que la route, elle n'est pas encoredéfinie. Donc, il faut utiliser reverse l'ID pour pouvoir, entre guillemets, faire en sorte que ça
00:13:28 :ne charge pas, on va dire. Voilà, c'est un peu l'idée. Mais donc là, en gros, vraiment l'idée,c'est ici, le print va s'exécuter puisque sans installation, c'est quand même chargé en fait,dans le programme, dans la mémoire. Voilà, c'est bon pour ça ou pas pour ces exercices-là ? On n'a
00:13:44 :pas tout vu du coup, mais est-ce que c'est bon ? Oui, ok. Vous mettez où ? Ici ? Oui, parce qu'onétait là-dessus sur le site. J'ai une question au sujet de l'exercice. Et si on ajoutait une
00:14:03 :fonction, est-ce que ça va empêcher de lancer une classe directement ? C'est-à-dire ? La fonctionmain, plutôt la condition main, plutôt. Juste après la classe, du genre, if main égale quelque
00:14:28 :chose après, puis c'est bon. Ok. Et on passe quoi là ? Ne mettre rien, par exemple. Je me disais,est-ce que ça pouvait bloquer l'exécution ? Non, regarde, là tu les charges direct. Alors à quoi
00:14:55 :ça sert de mettre un if name ? Après, quand tu travailles avec des, comment dire, que dans cefichier, cette fonction-là, tout ce qui est après le if, il ne sera testé que dans ce fichier. Si
00:15:19 :tu importes ta fonction ailleurs, tout ce qui est après le if ne sera pas testé dedans. En fait,c'est vraiment que si tu lances directement, ça te permet d'avoir une exécution conditionnelle.
00:15:34 :Je ne sais pas si on peut dire comme ça, mais on voit comme une exécution conditionnelle. C'estbon pour ça ou quoi ? C'est l'ordre de l'import, c'est bon. Oui, de toute façon, ça a toujours
00:15:54 :servi à te distinguer si un fichier c'est exécuté directement ou si tu importes. Mais après,dans ce cas-là, ici, tu charges quand même dans ta mémoire. Le prix de salut ici, il va s'afficher.
00:16:04 :Ok, donc la classe, tu prends quoi alors du coup ? Tu peux remonter s'il te plaît ? Oui.Je mettrais non. Non ou une erreur ? En fait, c'est ça qui est marrant, c'est qu'ils arrivent
00:16:44 :à te mettre le doute. Je mettrais une erreur non parce que tu peux le lancer. Non ? Je mettrais uneerreur parce que le caller n'est pas défini. Donc, à mon avis, si on faisait un... Attends,
00:17:04 :je vais lancer. Alors, si on regarde bien ce qu'il se passe. Caller, c'est un attribut d'instance.On est d'accord que dans le sens où vous avez une instance, elle a accès à l'attribut de classe,mais la classe, elle, attention, elle n'a pas accès à l'attribut d'instance. Et donc,
00:17:36 :tu as attribut d'erreur, ici. Ok, donc là, on a une erreur. Mais ça, c'est utile. J'adore cesexercices-là parce que c'est... En fait, tu reviens dessus, tu dis, pour moi c'est une erreur,
00:17:51 :mais pourquoi ils mettent non et du coup ça te met le doute et tout ? C'est assez rigolo,je trouve. J'aime bien. Ici, frame size, celui-là. Oui, c'est facile, celui-là. Il est donné,
00:18:05 :celui-là. Celui-là ? Il n'est pas défini. C'est une erreur aussi. Ok, il est là. Il n'est pasdéfini pour la classe. C'était pour voir s'il arrivait. Non, pas de problème, c'est ça. Ok,
00:18:22 :ok. Bon, voilà. Et pourtant, celui-là, il s'en exercit vraiment cool, mais t'arrives déjà desfois à mettre un peu le doute. Surtout, celui-là. J'ai l'impression que c'est celui-là qui pose
00:18:39 :problème. L'accès à la tribu d'instance depuis la classe. Et pourtant, on n'a pas, depuis la classe,accès à un tribu d'instance. Ok. Je vais peut-être dire un commentaire, mais c'est pas que dans les
00:18:53 :classes statiques où t'as accès aux intribus de classe, normalement, quand t'appelles ta classedirectement ? T'as dit quoi ? Parce que moi, je ne sais pas, je pense aux classes statiques,
00:19:05 :je trouve ça bizarre que tu puisses appeler ton instribu de... Donc là, si tu peux remettre l'exercice,deux secondes, excuse-moi. Ton frame size, ton bicycle pour un frame size, je comprends bien
00:19:17 :qu'il est défini dans ta classe, mais je sais pas, c'est... Ouais, ouais, non, c'est défini dans la classe, ouais.T'as parlé contre-intuitif. Qu'est-ce qui te dérange, du coup ? Le fait que tu puisses faire un bicycle
00:19:31 :pour un frame size alors que t'as pas créé d'instance de ta classe, en fait. Si t'es pas uneclasse statique ? Ah, non, mais après, tu peux... Il y a vraiment... Attends, j'ai du recopier ce truc-là.
00:19:43 :Dans tous les cas, quand t'as une classe, ici, hop, tu peux toujours... Tu peux toujours appeler depuis laclasse, il n'y a pas de problème. D'accord. Tu peux toujours le faire. Poses une instance, poses une instance, du coup.
00:20:09 :C'est lequel, celui-là ? Alors, attendez. Ouais, la question, vous voyez bien la question, quand même ?Elle est complète. Faut penser à celui qui est un peu long sur la ligne. Là, je peux, là, si vous voulez... Voilà, ce sera peut-être mieux.
00:20:25 :Je vous laisse la lire.Déjà, la question, je ne la comprends pas personnellement.Ouais, alors, des fois, ils aiment bien avoir des petites questions qui embrouillent un petit peu.
00:21:00 :En gros, pour ES, ça va être un set. Et quand ils disent éléments, c'est quand tu vas rajouter unélément, genre S.add. Ici, je vais mettre, je ne sais pas, oui, peu importe. Et là, ça va être l'élément.
00:21:25 :Donc, S, c'est l'ensemble. Donc, par exemple, ça va être la longueur d'un ensemble. Donc, c'est comme si, ici, je faisais...Donc, le premier choix, en fait, c'est comme si je faisais ça, println S. Là, c'est comme si je faisais S.add, je ne sais pas, mon élément,
00:21:49 :liste S ou S.remove pour enlever un élément. Donc là, en gros, S, ça va être un ensemble, un set. C'est bon ou pas ?Ouais.
00:21:58 :OK. Et donc, vous avez déjà vu un peu la notion de complexité ou pas ?Ça ne me dit rien, moi.Ouais, alors, on parle de l'encombrement.
00:22:10 :Un petit peu, mais vraiment, t'as la complexité, t'as la mémoire et le temps d'exécution, si j'ai pas de conneries.En gros, E, comment dire ?
00:22:24 :En fait, là, au niveau de la complexité, vous avez plusieurs choses.Vous avez, au niveau de la complexité, comment dire, des opérations.Comment je vais expliquer ça, du coup ? Je réfléchis un peu d'où je vais partir, du coup.
00:22:42 :Il y a des opérations faites selon la taille de la collection sur laquelle vous travaillez, donc par exemple, une liste.Plus la liste va être longue, plus une opération va être longue, du coup.
00:22:53 :Un set, par exemple, vu que ça marche avec des tables H, un set, de manière générale, quand on fait une opération sur un set,l'élément, il est trouvé tout de suite, automatiquement. Donc, en fait, peu importe le nombre d'éléments qu'il y a dans un set,
00:23:07 :si vous faites, par exemple, un add élément ou un remove élément, que le set fasse une taille de 1 objet ou 10 objets,ce sera toujours le même temps d'exécution. Ça ne va pas dépendre de la taille du set.
00:23:22 :Ça va ou pas ?Dans l'NDS, tu vas parcourir toute ta liste ?En gros, je vais expliquer. Quand on fait l'NS, quand on va essayer d'avoir la longueur d'un ensemble,
00:23:50 :Quand vous faites l'NS, ça a un temps d'exécution instantané, c'est 1.Puisqu'en fait, ça va appeler l'attribut qui dit combien il y a d'éléments dedans.
00:24:00 :Sur un ensemble, quand vous faites S.add, on veut ajouter un élément dans un set,ou quand vous retirez un élément dans un set, ça va être une complexité 1.
00:24:13 :Si vous avez un élément ou 100 éléments, ça ne changera rien au niveau du temps d'exécution.C'est bon pour l'instant ?Oui.Là où ça devient plus embêtant, c'est avec les listes.
00:24:27 :Parce que les listes au niveau économie, au niveau exécution, plus la liste va être longue,plus la complexité de temps va être longue.C'est ce qu'on appelle du O.N.
00:24:42 :Là, on était dans du O.1.Selon la taille du élément, le temps ne change pas.C'est toujours le même temps qu'avec une liste.Ici, ça va être du O.N.
00:24:56 :Puisque plus la liste va être longue, plus le temps d'exécution va augmenteravec le nombre d'éléments qu'il y a dans la liste.Ici, si vous transformez un set en liste, plus vous aurez d'éléments, plus ça va être long.
00:25:15 :À tous les autres endroits, peu importe, ici c'était du O.1.Est-ce que ça va ou pas ça ?Oui, ça va.Oui, mais avant, je n'aurais pas...
00:25:29 :J'essaie de me retrouver un truc.Est-ce que je l'ai là ?Ok.Là, c'est bon, il y a le O.N., il y a le O.1, le Log N.
00:25:51 :Je vais vous l'envoyer.Là, par exemple, je vais vous montrer un exemple.Vous voyez mon écran toujours ?Oui.Là, quand vous vérifiez s'il y a un élément dans une liste, par exemple,vous allez être en O.N.
00:26:11 :Plus il y a d'éléments dans la liste, plus ça va être long.Sur un set, avec la table de H, peu importe, que ce soit le premier élément ou le dernier,ça sera du O.1, c'est instantané.
00:26:21 :C'est pour ça que les sets sont réputés pour être très efficaces.On est vraiment en O.1.Ça, je vous l'envoie, c'est super important, je vais le mettre dans le chat.
00:26:32 :Hop, hop, normalement je l'aurai dans le chat.Après, il y a pire que ça, il y a...De mon côté, ce qui était un peu embêtant, c'était la question, en fait.
00:26:49 :Parce que, S, je ne pensais pas forcément que c'était un ensemble set.Oui, je sais, c'est pas...Oui, oui, la question m'a un peu embrouillé aussi, je suis d'accord.
00:27:03 :Au niveau de la complexité, je vous laisserai regarder ça.Et voilà, il est ici.Très important, du coup, le module collection, j'en ai parlé à plusieurs d'entre vous.
00:27:14 :Le module collection, avec les listes, quand vous faites un pop d'une liste,ça va tout écaler dans votre liste.Donc, je vous laisserai regarder ici ce qu'ils appellent dans le deck.
00:27:26 :Ça permet d'avoir une économie de mémoire qui est assez énorme sur des listes assez longues.Pour faire des pop left, c'est assez pratique.Celui-là, je vous le remets pour ceux qui n'ont pas lu.
00:27:41 :Alors, ça, sur Closas, c'est...Je pense que ça, ils adorent sur Closas, c'est ce module-là.J'ai eu quatre questions, tu vois.Heureusement que celui-là, je ne le connaissais pas par cœur.
00:27:54 :Alors, je vais vous le dire maintenant.Ça, je n'ai jamais eu Autosa, d'ailleurs.Je ne m'en sers jamais.C'est intéressant, d'ailleurs, la façon dont il crée l'objet.
00:28:02 :Je ne m'en sers jamais.Ça, sachez-le.Ça, je ne l'ai pas eu.Je ne l'ai jamais vu.Counter, très important.Hyper important à voir.Ça, c'est plus utilisé quasiment en dehors du deck.
00:28:18 :De toute façon, je me dis qu'il n'y a plus trop d'intérêt, je crois, depuis Pluton 3.6.Lisez-le quand même.Ça, méga important.Ça, méga important.
00:28:31 :Et ça, un peu important.Lisez-le, en tout cas.Je reviens dessus.Ce qu'ils voulaient savoir, en gros, c'estqu'est-ce qui va dépendre de la taille de l'ensemble.
00:28:47 :Qu'est-ce qui va dépendre de la taille de l'ensemble.Et qu'est-ce qui dépend de la taille de l'ensemble ?Ici, un laine.Non, puisqu'en fait, on va juste chercher l'attributqui nous retourne la longueur du set.
00:28:59 :Ajouter un élément à un set.Avec la table de H, c'est une opération O1.Ici, O1.Et là, vu qu'on est sur une liste,et bien, plus la complexité, on est déjà en ON.
00:29:10 :Ça dépend de la taille.C'est bon ou pas, du coup ?Oui, c'est bon.Voilà.Je ne sais pas s'il fait chaud chez vous,mais là, c'est un table.
00:29:23 :Mon Dieu.Alors, tac.Ah, il est mignon, celui-là.Je vous le laisse lire.Ce n'est pas compliqué.Dites-moi la réponse, et puis je mets des petits trois devant.
00:29:41 :Selon le nombre de réponses que j'ai.Il y en a combien en tout ?1, 2, 3, 4, 5, 6.Dites-moi, 1, 2, 3, 4, 5 ou 6.
00:29:54 :Je n'ai pas fait gâcher ça.Très importante la phrase qu'il y a ici.Très importante, excusez-moi.Je n'ai même pas fait gâcher.Il faut que je l'ai fait.
00:30:16 :La deuxième et la dernière.Alors, la deuxième.2, 3, 6.Alors, 2, 3, 6, OK.Caroline, tu m'as dit 2, 6,Caroline, tu m'as dit 2, 6, OK.
00:30:43 :2, 6 pour moi aussi.2.C'est sympa les questions d'Auza comme ça.C'est marrant de voir les hésitations.Moi, je dirais 2.OK.Est-ce qu'il y en a d'autres ou non ?
00:31:05 :Je pense qu'il y en a qui veulent...OK.Alors, en gros...Il y a une phrase qui est importante, c'est celle-là.Relisez-la bien, surtout.Oui, donc, ce n'est pas possible à 3.
00:31:24 :Voilà, c'est ça.En gros, c'est ça.Bon, celle-là, ça me paraît...Je ne vois pas d'où on peut sortir un dictionnaire d'ici.Il n'y a pas de problème.
00:31:34 :Bon, un dictionnaire, normal.Donc, l'A3, en fait, c'est ça qui est important.Même sans l'A3, ils ont raison de le mettre,parce que ça pourrait porter à confusion.
00:31:46 :A, A et B ne sont pas des variables.Ça, c'est mort.Ça, on est d'accord que je n'ai jamais vu ça.Ça, c'est pareil.À savoir qu'on peut très biencréer un dictionnaire depuis une liste de tuples.
00:32:04 :Je ne l'ai rarement, rarement vu, mais ça peut se faire.Mais si les médias veulent le faire, je ne sais pas pourquoi, d'ailleurs.Je ne sais plus pourquoi, mais ça se fait.
00:32:14 :Bon, c'est bon pour tout le monde, du coup, pour celui-là ?Oui.OK.Oui.OK, il est marrant, celui-là.Il est marrant, celui-là.J'ai envie de voir vos solutions, en fait.
00:32:45 :Faut qu'on les active ?Pardon ?J'ai dit, faut qu'on les active ?Ouais, ben, doute-moi, allez-y, en live.Est-ce qu'il y en a deux ou trois qui veulent se lancer ? On les fait.
00:32:59 :Déjà, dans votre tête, en combien de lignes ça peut se faire ?Deux lignes ?Probablement une, mais...Bon, après, moi, honnêtement, je suis pas en fourrure de dire, il faut forcément faire une ligne.
00:33:25 :Je dis ça comme ça pour le fun du truc, quoi.Je dirais, for item in HVALUE.1.Alors, tu veux savoir quoi que c'est ?For item in INDICT.ITEMS.
00:33:48 :Je crois que c'est items, avec les parenthèses, ouais.Ah non, une ligne !RETURN MAX.Je peux faire un RETURN MAX.C'est pour items, donc il faut récupérer, du coup, les clés et les valeurs, là.
00:34:07 :Vas-y, donc, vas-y, RETURN.Ah, c'est difficile, je sens les clés.Je fais ça comme ça.Hésitez pas un peu, si vous voulez qu'on...Moi, j'aime pas faire sur une ligne, parce que c'est tellement peu lisible.
00:34:38 :C'est horrible.Là, il y a un truc quidible à faire, vraiment.Sur une ligne, c'est faisable avec une compréhension de liste, normalement.Alors, j'avais montré dans un mentorat, mais à un moment donné, avec MAX...
00:34:51 :Tu peux faire la compréhension dans MAX, je crois, non ?Alors, MAX, c'est un paramètre qui est hyper cool, qui s'appelle KEI, ici.Ah, oui.
00:35:03 :Bon, allez, j'en mets un.MAX DE IN ITEMS AVEC KEI ÉGAL...Sur les dictionnaires, c'est pas hyper intuitif.J'avoue que c'est pas très intuitif.C'est KEI et VALUE, du coup ?
00:35:19 :Alors, ça marche pas comme ça.En fait, sur un dictionnaire, vous pouvez faire ça, ça, une lambda,et vous allez dire K, et là, vous faites INDIC.
00:35:29 :La façon de faire, j'avoue qu'elle est pas hyper intuitive.Moi, je suis pas un grand fan.OK, donc là, je récupère bien B.Après, il y a plus simple.
00:35:40 :On peut très bien dire, ici, KEI.J'en ai fait plein à l'époque des gazots comme ça, donc je suis déjà tombé dessus.Intéressant, et très rapide, INDIC.GET.
00:35:52 :Là, vous l'avez aussi.Donc là, dans INDIC, ça peut être résolu.C'est pour ça que si vous connaissez un petit peu toutes les techniques avec les fonctions MAX,c'est ce que je disais, je sais plus si j'ai eu ça il n'y a pas longtemps,mais si vous connaissez bien les fonctions de base built-in de Python,
00:36:08 :tous les algorithmes qu'ils vous demandent,vous pouvez les faire en une ligne, deux lignes, trois lignes.C'est vraiment faisable.Est-ce qu'il y a d'autres solutions, ou pas ?
00:36:20 :À la basique, tu mets ton MAX égale à moins 101.Pour chaque, tu boucles sur ton dictionnaire.Si la value est supérieure à MAX, tu remplaces ton MAXet tu stores l'acquis dans une autre variable.
00:36:39 :Et à la fin, tu ressort de ta variable.Tu pars d'une valeur de départ, et après tu remontes au faire-mesure.Tu compares.J'ai déjà fait ce genre d'exercice, c'est pas mal.
00:36:49 :C'est ce que j'aurais fait aussi, tu fais une boucle fort avec une variable dedans,tu récupères la première value.Et si la value de i est plus élevée, tu la remplaces.
00:37:05 :Et sinon, tu continues.Scénario classique.Avec une fonction de base de Python.Après, si jamais vous êtes à fond dans collection,vous révisez collection et tout,il y a un autre moyen.
00:37:21 :C'est pas plus rapide non plus, mais ça peut se faire.Si vous faites un counter ici,et vous faites un collection.counter.C'est important à connaître les counters.
00:37:32 :Là, c'est pas ce qu'il y a de plus rapide, mais je vous le montre.Et on va faire un print, d'ailleurs, du counter aussi.Quand on a un counter, comme ça, ça vous retourne du coupun objet counter.
00:37:47 :Mais du coup, ça vous donne des méthodes.C'est une sous-classe de dictes.Par exemple, ici, je vais laisser mon print,ou je vais faire mon return direct.
00:37:57 :On pourrait très bien direreturn, et on va faire un counter ici.Et on pourrait très bien dire most common.Et là, on va voir ce que ça fait.
00:38:11 :Donc là, on voit qu'on récupère du coupcelui qui a la valeur la plus élevée dans une liste.Donc là, ça demande une opération en plus,mais il faudra nous faire un 0,et puis encore récupérer ici, comme ça.
00:38:26 :Et là, on l'aurait.C'est plus compliqué, mais ça se fait.Je vous montre juste que counter, ça peut être sympa,parce que par exemple, si vous faites ça,vous mettez 2,vous allez récupérer 3 et 2.
00:38:40 :Enfin, B et C.Du coup, B, 3, C, 2.C'est bon, pas ?Vous récupérez ceux qui ont la valeur plus élevée,mais en décroissant.
00:38:48 :Est-ce que c'est bon pour celui-là ?Donc la solution serait de faire un counter,vous pouvez le faire, mais c'est comme ça.C'est plus intuitif quand même.
00:39:02 :Je suis d'accord avec toi.C'est juste une solution parmi tant d'autres.Si jamais, je ne sais pas,vous avez révisé collection à fond avant,vous êtes à fond dedans,vous pouvez le faire avec collection.
00:39:13 :Si je dis ça,parce qu'ils ont servi pas mal à une période de collection,avec Max, c'est beaucoup mieux.Le chat, il n'y a pas de questions.
00:39:22 :En fait, ça passe vite.Il est quelle heure ?42.Faut leur faire une ou deux ?Ou pas ?Dites-moi, comme vous voulez.Le slicing, je le verrai.
00:39:38 :Ou je pars sur slicing, comme vous voulez.Vous préférez quoi ?Slicing, ça peut être un peu long, par contre.Peut-être que la prochaine fois, je ferai moins de questions.
00:39:47 :Peut-être un peu sur le slicing.Mais on va rester sur celui-là.On va voir celui-là plutôt.Je ne sais plus s'il est là.Quelqu'un qui me disait il n'y a pas longtemps.
00:40:00 :Le problème, c'est qu'il faut connaître absolumentles modules.Les modules d'adresse standard.Non.URL libre ou autre,il n'y a pas besoin de tout connaître.
00:40:14 :Par contre, il y a un truc qui me gêne ici,c'est que je reçois des requestset que ce ne sont pas les vrais standards.
00:40:21 :Ce n'est pas grave, on va le faire quand même.Je vous laisse regarder la question.Oui.C'est bon.Vous les avez tous, non ?Oui.
00:40:33 :C'est plutôt simple.C'est plutôt simple.J'ai du cancer, là.Voilà.Pour montrer l'exemple à quelqu'unqui avait longtemps me disaitle problème, c'est que je ne connais pastoutes les...
00:40:44 :Je ne saurais pas sortir, par exemple,du URL libre ou du mat.Tous les modules,ce n'est pas que l'exercice de code là-dessus.C'est que souvent, il y a beaucoup ausside questions un peu dans ce genre-là.
00:40:55 :Reliées à quoi sert ce module ?Si ça peut déstresser,j'espère qu'il y en a qui...Les personnes qui me demandent çaverront la session.
00:41:07 :Si ça peut déstresser un petit peu,il ne faut vraiment pas tout connaître par cœur.Le dernier.Allez.Non, pas l'écrit.Je vous promets que moi,je suis tombé dessus au Tosa.
00:41:23 :C'est horrible.J'ai des titres qui me l'effondrent.Oui, voilà.Il y a Lya qui vous l'effondre aussi.J'étais tombé dessus par cet exemple-làou un différent, je crois.
00:41:34 :J'étais tombé dessuset du coup, j'avais réponduje ne sais pas parce que je ne me soutenaisplus par cœur.C'est un peu...Est-ce que vous avez une petite idéeou pas comme ça ?
00:41:41 :Sans chercher sur Internet.Vraiment.Si on vous la met comme ça,est-ce que c'est bon ou compliqué ?Je ne sais plus comment on fait.
00:41:48 :Honnêtement, j'en fais très peu.Vous le pouvez avoir.Non, mais bref.Parce que là,il faut la faire, la riguex.C'est ça, avec lesslash, anti-slash, machin.
00:41:58 :Oui, c'est ça.En gros, sur le principe.Par contre, si vous avez un exosur les rigex le jour du Tosa,il y a de grandes chances que ce soit celui-làparce qu'il n'y en a peut-êtrequ'un ou deux.
00:42:11 :Donc, regardez-le bien.Il n'est pas compliqué.Ici, vous avez...Ils vous mettent déjà ça.La fonction est déjà écrite.C'est vraiment présenté comme ça.La fonction, elle est écrite.
00:42:23 :Ils utilisent ici, search.Et en fait, search,ça va s'arrêter à la premièreoccurrence trouvée.Dès qu'ils trouvent trois nombres,c'est bon.Rien de compliquépour dire qu'il y acomment dire...
00:42:41 :récupérer un nombre,n'importe quel nombreavec une rigex.Vous faites D comme ça ici.Vous voulez trois nombres,vous mettez trois.Ici, vous faites ça, c'est trois au plus.
00:42:53 :On va dire trois.Ici, ça suffirait pour l'exercice.Maintenant, il y a un problème.Quand vous faites ça,vous voyez qu'il y a écritsyntaxe warning.
00:43:05 :Pour moi, le D ici,ce n'est pas une séquenced'échappement qui existe.Du coup, ça n'en est pas une.Mais lui, en fait,Python cherche à...
00:43:13 :Pour lui, il croit qu'on essaiede faire une séquenced'échappement.Vous savez, les anti-slash npour revenir à ligne,ainsi de suite.C'est pour ça qu'avec une rigex,vous utilisez toujoursune raw string.
00:43:26 :Comme ça, en fait,ça va vraiment interpréterl'anti-slash et le D.Et là, si vous faites ça,normalement,on passe tous les tests.Donc,D, ça veut dire, en gros,n'importe quel nombre.
00:43:38 :Donc, de 0 à 9.Et 3, ça veut dire 3 fois.Donc, dès que vous tombez sur3 fois un nombre d'affilés,en fait, ça passe.
00:43:47 :Plus clair, si vous voulez.Si vous ne voulez pas vous prendrela tête, vous dites0, 9.Là, ça veut dire,j'ai un nombre.OK.
00:44:00 :Deux nombres, trois nombres.Et n'importe quel chiffre.Ça, ça passe aussi.C'est bon pour avoir ça ?Oui.Pour l'instant,il n'est pas compliqué en ce moment.
00:44:14 :C'est vraiment...Il faut juste récupérertrois nombres d'affilés.OK.En partant de ça,est-ce que vous savez, du coup,comment on peut récupérer,on peut réduire çaen gardant le partien de 0, 9,mais en en enlevant 2 ici.
00:44:25 :Comment on pourrait faire ?Je ne sais pas si on peut fairefois 3.C'est celui que j'ai montré avant.C'est tout.Vous faites ça.
00:44:32 :OK.Et là, ça passe.Bon.Je vous rassure,je ne connais pas par cœurtous les patterns de réjection.Bon, le 0, 9, ça va,parce qu'il est...
00:44:43 :Il n'est pas...Enfin, il est facile à récupérern'importe quel nombre.Après, avec les lettres,vous faites n'importe quelle lettrede minuscule à majuscule,ainsi de suite,enfin, des trucs dans le genre.
00:44:54 :En soi, ce n'est pas extrêmement compliqué,mais il faut se remettre dedans.Vu que je n'en fais jamais...Comme ça, ça me parle plusque l'histoire du D et tout ça.
00:45:03 :Le double R ?Oui, mais c'est parce qu'en fait,c'est pareil.En réjection,il y a d'autres patterns comme çaque vous avez en anti-slashet une lettre derrièrequi veut dire autre chose encore.
00:45:14 :C'est parce qu'en fait,le D veut dire n'importe quel nombre,comme le crochet 0, 9veut dire n'importe quel chiffre.C'est le sérieux même.Par contre, même si on met les crochets,il faut mettre le R devant.
00:45:26 :Alors, si tu mets les crochets ici,en fait, tu ne vas pas être embêtépuisqu'on va le refaire.Ici, tu n'as pas de caractère d'échappement,donc ça passe.
00:45:41 :C'est dès que tu commencesà avoir du caractère d'échappement,en fait, Python va te dire en gros...Soit il va t'interpréter,si tu fais un anti-slash N,soit il va te direje ne comprends pas, ça n'existe pas.
00:45:54 :Donc là, vous faites un rostring.Mais déjà,une réjection,toujours une rostring.Comme ça, au moins,c'est une réjection.Par exemple,moi, ça m'arrive souvent,en Django,de faire des champsqui sont validés par des réjections.
00:46:09 :On va finir sur cette note-là.Sur cette petite note-là.Hop.Réjection.Validateur.Encore mieux,on va faire autrement.Je vous le montre rapidementpour terminer.
00:46:28 :Pour les mots de passe,par exemple.Alors, j'ai un autre cas.J'ai un autre cas ici.Que je me souvienne,ça doit être dansAccounts.
00:46:39 :Vérification.Mail.Oui, non, c'est pas ça.C'est un projet que j'ai peut-être mis,c'est un vieux projet,je ne sais plus,dans Core, ici.Après, avec les ORM,on aura moins besoin, du coup.
00:46:54 :On a des décorateursqui vérifientsi c'est un email valid, etc.Il y a déjà des validations,je suis d'accord, ouais.Je ne sais plus si c'est dans celui-là.
00:47:02 :Je regarde vite fait.First name.Et je l'ai mis où, ça, du coup ?Letters.Non.Utils.Hop.Voilà.Donc là, par exemple,j'ai une regex ici.
00:47:15 :Alors, c'est encore autre choseparce que c'estdu Django.Voilà, Regex Validator.Qui, lui, va utiliserle module Regex.OK.Et en gros, moi,je me suis crééun Regex Validatorpour dire, en gros,que les seules lettreset les espacesqui restent sont autorisés.
00:47:30 :Pourquoi ?Parce que je veuxque, par exemple,dans les first name,last name,ils n'arrivent pas à me mettredes noms, quoi,genre Frank02, tu vois.
00:47:38 :Voilà.Donc, ça permet, en fait,de limiter les...de valider, quoi, simplement.C'est un champ de validation.Et en plus,en plus, s'ils vous mettentun chiffre,ça va renvoyerautomatiquementcette erreur-làdans vos formulaires.
00:47:55 :Donc, très pratique.Voilà.C'est bon pour ça ou pas ?Euh...Juste là, c'est quoi ?T'as mis...Alors...OK.T'as mis les minuscules,les majuscules,les lettres spéciales,accents, etc.
00:48:09 :Les accents,lettres tiréeset je sais plus pourquoij'ai mis le dollar...Ouais.Anti-slash-S.Donc, c'est pour les tirées.Ouais.Le dollar.Et toi, le dollar.
00:48:20 :Alors, attends.Euh...Je vais regarder vite fait.Je mets le quoi, ici ?Je sais plus le dollar.Alors...Le dollar,c'est pas multipliépar un nombreun peuqui n'est pas défini ?
00:48:36 :Alors, attends.Là, le dollar...Ah, oui.C'est pour les fins de chaîne.Ouais.Est-ce que j'aurais pufaire sans, ici ?Euh...Est-ce que j'aurais pufaire sans ?
00:48:50 :Je ne suis pas sûr.Ouais.En fait, pour eux,le dollar, c'est pourles fins de chaîne.Mais c'est qu'une fin de chaîne,ici, c'est utile.
00:49:00 :Euh...Ouais, en fait, oui.Parce que ton paternedoit se terminer vraimentà la fin de la chaîne.Ouais.Ouais, comme ça,je réfléchis, mais...
00:49:09 :C'est un cas un peu spécial.Bon, pourquoi pas.Pourquoi pas.Par contre, le...Qu'est-ce que j'allais dire ?Je ne sais plus.Je vais partir sur un truc.
00:49:20 :Euh...Je ne sais plus du tout.Oh, je ne sais plus.J'ai oublié.Alors, euh...Oui, donc ça, le...Je ne sais plus si vous savezce que c'est, ça ou pas ?
00:49:32 :L'astérisque ?C'est pour dire zéro...Euh...Ouais, c'est zéroou plusieurs occurrences.Bon.Donc, c'est peut-êtreplusieurs lettres.Pour moi, c'était multiplié.Non, non, non.
00:49:47 :C'est zéro, plusieursoccurrences.Alors, je réfléchis.Je regarde un peu surInternet en même temps,parce que j'avais un doute,mais c'était le dollarqui l'embêtait, mais ça,quelqu'un peut vérifier.
00:49:56 :Pour moi, le dollar,c'est zéro, plusieursoccurrences.L'astérisque, c'estplus ou moins sûr.Mais voilà.Pour l'instant, celle-làn'est pas hyper complexe,mais après, je vous dis,euh...
00:50:08 :Je vous demandais...Je vous demandaisà copilote,faites-moi une reject,il va vous le faire.Ça peut être pratique aussi.Après, ça dépendsi vous avez le temps.
00:50:20 :Pour le fun, en fait,des fois, je m'en fais...J'ai envie de les fairemoi-même, mais quandj'ai pas le temps, honnêtement,je demande à copiloteet après, je la testeet je vérifie bienun peu par moi-mêmeet vu que j'en ai déjà fait,je sais dire, oui, bon,
00:50:31 :ça me paraît bizarreou ça va pas.Donc, voilà.Euh...Bah, écoutez, en fait,ça passe vite.Je pensais que ça allait être...J'aurais le temps de tout faire,de faire du slicing,mais c'est passé assez vite.
00:50:41 :J'ai une question, Gabriel.Oui.Pour les questions de codelors du Toza,t'as un interpréteurou c'est vraimentcomme si t'écrivais du codesur du papier, quoi ?
00:50:52 :Tu peux pas le tester.C'est vraiment juste...Non, alors, si, si.Euh...Ne stresse.Euh...De toute façon,on doit se revoir pour ça,mais on se reverra pour ça.
00:51:01 :Je te parlerai en détaildu Toza,mais tu as un interpréteuren ligneet alors,je sais plus à quel niveauest-ce que je l'ai passéil y a un an, déjà.
00:51:10 :Ça fait déjà un an.Je sais plus à quel pointt'as d'autocompression,mais en fait,tu vas écrire ton code.Imagine que tu écris ton codeet que c'est pas bon.
00:51:18 :Tu vas l'exécuteret derrière,t'as des asserts.Et s'il passe pas,eh ben, ça te diten gros que ça passe paset tu peux recommencerle temps que tu veux.
00:51:26 :OK, OK, d'accord.Si ça passe, c'est bon,ça passe.Que sur les QCMou les autres types de questions,t'envoies ta question,c'est mort, c'est fini.
00:51:33 :T'as faux, t'as faux.Que les questions de code,c'est si t'as faux,ben, ça passe paset tu réussissur ce qui arriveou tu lis surje ne sais pas, sinon.
00:51:41 :OK, OK.Ça marche.D'accord, merci.T'es rassurant,imagine avec les...Avec une fois deux frappesou un truc comme ça,c'est bien.Oui, oui, oui.
00:51:50 :Heureusement,au moins le nombre de foisoù j'exécutais,je faisaismerde, ça passe pas.Oh, putain,j'avais oublié un truc.Non, t'inquiète.OK, OK.Y'a pas de problème.
00:52:00 :Baptiste,t'envoyais quoi ?Zéro ou plus,c'est ça, ouais.Donc, c'est bien ça.Donc, voilà.Et c'est bon pour vous,du coup ?Ça a été la sessionou...
00:52:10 :Ça vous va,les petites questionscomme ça de Tozard ?Ouais, nickel.Ouais, franchement,c'était rigolo, j'avoue.J'en ai pas fait depuisle mois de février,mais c'était sympa.
00:52:19 :Au moins,ça nous éviterade tomber dansquelques pièges.Mais non,en plus,surtout queces questions-là...C'est des trucsqu'on n'utilise jamais, quoi.Y'a des trucsque j'utilise souvent.
00:52:31 :Moi,je vais pas faireun Bicycle.coloralors que j'ai pasd'objets créés, quoi.Ouais, ouais,mais sur Tozard,y'a souvent des questionscomme çaou des trucsque tu fais jamaiset que tu te dis« Putain, en fait,j'ai jamais testé,du coup,je suis pas sûr. »
00:52:47 :Donc,ouais,c'est intéressant.Y'a pas de questionscomme ça, en fait.Il faudra en faitfaire d'autresla prochaine fois,je pense,je vais voir.
00:52:57 :OK.C'est bon pour vous,du coup ?Oui.Oui.OK.Bon,bah, du coup,merci d'être venu,tout le monde.Et puis,jeudi prochain,on vaallerjeudi prochain.
00:53:12 :Jeudi prochainsera le 17,c'est ça ?Donc,c'est bon.OK,bah,donc,ça sera tous les jeudiscet été,normalement.Stéphane,il est en« congé »,il va reprendre en septembre.
Aucune occurrence trouvée pour « ».