Session du 30 juillet 2025 à 21h00
Structures de Données
TOSA & Certifications
Programmation Orientée Objet (POO)
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
Simulations d’entretiens Python et tests techniques
Exploration des tests techniques en Python à travers de petits exercices proches des entretiens, avec un focus sur l’abstraction, les factories et les attentes des recruteurs.
00:00:00 :Bonsoir tout le monde, à vous deux.Petite question, vous avez déjà fait des tests techniques ou pas en Python ?Non, jamais.Pareil régulièrement, oui.
00:00:17 :Je dis ça, moi je n'en ai pas eu en soi.J'en parle parce qu'on va faire un peu de ça ce soir.En fait, un boulot que j'ai trouvé pour Thibault, je n'ai pas eu de test technique.
00:00:35 :Pour une boîte pour qui j'ai bossé, elle m'a caractérisé.Ah, j'accepte, il y a quelqu'un qui arrive.Ah, ça ne marche pas.Salut Caroline.C'est bien connecté, c'est bon.
00:01:02 :Est-ce que tu m'entends ?Problème de micro.Bizarre.Du coup, il y a une boîte, elle m'a demandé des projets que j'avais fait.Et en fait, c'est passé comme ça.
00:01:25 :Allo ?Oui, Caroline, salut.Oui, allo, oui j'entends bien.Est-ce que tu as déjà eu des tests techniques en Python ou en code pour bosser pour une boîte ou pas ?
00:01:38 :Non.On va se faire 2-3 exercices style test technique ce soir, juste comme ça.Alors, tu as du PHP, ok, d'accord.Vas-y, explique-moi maintenant si ça ne te dérange pas ce que tu as eu à faire en PHP.
00:01:58 :C'était rien de bien compliqué.Ouais ?Une règle et tout.Ok.Bon, c'est bon.Ok.Ça dépend des boîtes.Donc, je disais, il y a une boîte il n'y a pas longtemps pour Django REST Framework.
00:02:13 :Elle, elle m'a demandé, en fait, c'est passé comment.Elle m'a contacté, elle m'a demandé, je lui envoie mes projets.Je lui dis, attendez, je fais une chaîne YouTube, une vidéo YouTube sur chacun de mes projets.
00:02:25 :J'ai envoyé mon GitHub.Hop, elle les a regardés, elle m'a dit, c'est bon, t'es pris.Il y en a un autre.Là, je me suis loupé, pas à cause du code, mais je me suis loupé là avant mes vacances.
00:02:39 :Alors lui, c'était intéressant parce qu'en fait, il m'a demandé de présenter un peu de,de lui parler de Wagtail, en fait, de Framework Wagtail.Et donc, j'en ai parlé et tout.
00:02:49 :En fait, c'était un peu ça le test technique.Il me fait, écoute, j'ai vu tes projets Wagtail, tout machin.Tu m'as montré, tu comprends tout ce que tu fais.
00:02:55 :Tu as se faire bien expliquer.Ton code, il est propre, tout machin.Donc, il a regardé le code en même temps que je montrais.Il fait ça, c'est super.
00:03:01 :Et à la fin, après ça, il me fait, sinon, niveau anglais, tu es comment ?Ben, j'irais pas faire une réunion en anglais, quoi.Mais, mais ça va.
00:03:11 :Il me fait, bon, ben, c'est mort, en fait.C'est, c'est dommage parce qu'il peut t'intéresser vraiment.C'est juste le point noir.Tu gardes ton contact.
00:03:17 :Mais en fait, c'était pour avoir des réunions avec des gars à New York.Donc, en fait, c'est pour un projet pour une grosse boîte connue américaine.
00:03:25 :Et donc, c'est chier.Du coup, ben, en fait, il faut penser aussi à l'anglais.Vous êtes bon en anglais, bilingue ?Ouais, je pense qu'il doit avoir le même niveau que toi, Gabriel.
00:03:36 :Sur la, sur la, sur la thème technique, ça va.S'il faut lire de la documentation, on vote.Mais pour ce qui est des événements comme la communication, je suis, je suis un peu,c'est un peu juste, c'est un peu limité.
00:03:48 :Ouais, réunion, c'est chaud.Et toi, Baptiste, t'as dit quoi ?Moi, oui, on avait, il y a deux ans, je crois, dans ma boîte, une équipe de serbes avec qui on travaillait.
00:03:57 :Du coup, c'était quoi, anglais ?Ok.C'est con, j'étais bilingue il y a dix ans, un peu plus de dix ans.Et là, j'en ai pu refaire plus et je regrette à mort.
00:04:08 :J'étais quasi bilingue.C'est con.Ok.Ben, Caroline, t'es bilingue, toi ?Ben, ça va.Ben, oui, oui, parfaitement.Ça aide.Au Canada.Salut, Arcel.Salut, Arcel.
00:04:28 :Salut, Olivier.J'ai une question pour toi, Arcel, parce qu'on a un petit peu commencé.T'as déjà eu des tests techniques, toi, à faire, Arcel, pour des entretiens en code ou pas ?
00:04:41 :Des tests techniques ?Oui.Dernièrement, d'ailleurs, pour DCBS, Core Banking System.Ouais ?Ok, ouais.C'était des tests de quel type ?C'était de l'Oriento OBJ avec du Java.
00:05:03 :Ok, d'accord.Ok, ok.Non, c'est intéressant.On parlait de ça tous ensemble parce qu'on saurait avoir des tests, des styles, des tests techniques, des petits exercices.
00:05:15 :Qu'est-ce que j'allais dire ?Qu'est-ce que j'allais dire ? Je ne sais plus.Oui, donc, voilà, en fait, ça dépend des boîtes.Et je dis ça parce qu'il y a une boîte aussi avec qui je parlais, des recruteurs.
00:05:39 :Enfin, on ne va pas vous interdire Internet.On vous laisse le faire chez vous et puis, en fait, vous nous rendez votre code trois jours après sans problème.
00:05:45 :Donc, en fait, ça veut dire, c'est vraiment, ça dépend vraiment des boîtes, quoi.Donc, voilà.Écoutez, je vais vous montrer l'exercice.Je vais mettre mon écran derrière.
00:05:58 :Je galère, je galère.C'est bon, je suis là.Je vais l'attaquer.Il est là et je vais partager mon écran.Est-ce qu'il veut ?OK.
00:06:32 :On voit mon écran, là ?Oui.J'ai commencé il n'y a pas longtemps à toucher un petit peu à ça, là, récemment.Je l'ai effacé pour le refaire avec vous, d'ailleurs.
00:06:45 :Alors, ils mettent Easy, mais ce n'est pas forcément simple au premier abord,mais ce n'est pas hyper compliqué non plus, pas infaisable.Mais c'est intéressant à faire de temps en temps.
00:06:57 :Donc, là, je suis sur LeetCode.Et en fait, justement, c'est des tests techniques qui reviennent aux entretiens.Voilà.Enfin, c'est style entretien, quoi.Et donc, comment ?
00:07:15 :Pas de problème.On va commencer par celui-là.On voit bien mon écran, c'est bon.Nickel.Tac.Allez, c'est parti.C'est juste pour vous montrer un peu les styles que vous pouvez avoir,parce que je sais qu'il y a...
00:07:29 :Je suivais un gars sur Twitter une fois,et puis il montrait des exercices qu'il avait en entretien,je ne sais pas si c'est beaucoup d'entretiens,et il y a vraiment des trucs de ce genre-là, quoi.
00:07:38 :Vraiment purs, entre guillemets, algo, résolution de problèmes comme ça.Est-ce que vous voulez que je vous laisse lire tranquillement, rapidement, là, ou pas ?Peut-être.
00:07:50 :Après, si il y en a qui ça pose problème l'anglais, vous le dites, mais...Vous me dites quand c'est bon, ça, je crois.Oui, c'est bon.
00:08:20 :Et les autres, c'est bon ?Oui, pareil, c'est bon.Ok.Je crois que j'ai besoin d'une traduction.Tu veux une traduction ?Oui.Ok.De toute façon, on va regarder l'exemple.
00:08:35 :Eux, ce qu'ils veulent, c'est...Tu vas avoir deux tableaux.NUMS 1 et NUMS 2.Alors, si j'ai bien compris en relisant, le N, en fait, NUMS 2, il sera toujours à la même longueur que N.
00:08:49 :En gros, ce qu'ils veulent, par exemple, ici, tu as M est égal à 3 pour NUMS 1.Donc, si M est égal à 3, on va prendre 1, 2, 3, ici.
00:09:01 :Et on va prendre ensuite tous les éléments de NUMS 2.On va avoir 1, 2, 3, 2, 5, 6.Donc, 1, 2, 3, 2, 5, 6.
00:09:12 :Mais il va falloir, en fait, avoir un résultat final trié.Ok ?On va aller le mettre.1, 2, 3, 2, 5, 6.Je n'ai pas fait gaffe.
00:09:21 :Il va falloir qu'ils le mettent.Donc, le but, c'est de récupérer les trois premiers éléments, ici.Tout le tableau, là, et de faire une fusion et de trier.
00:09:30 :Juste, ils le disent à un moment donné.Ils le disent à un moment donné.Et c'est écrit où ?Que NUMS 1 et 10.Il ne faut pas créer une nouvelle liste.
00:09:42 :Il faut modifier la liste en place.Ok ?Ok.Ok, ok.Un source d'images.Ça, c'est bon.Un morceau d'éléments.Ok, ça, c'est bon.Ok.
00:10:00 :Ok.On a un simple tableau.Ok.Voilà.Ok.Donc, ici, le but, c'est que NUMS 1,il ne faut pas créer une nouvelle liste,mais il faut modifier la liste en place.
00:10:16 :Est-ce que, comme ça, de tête, vous avez la techniquede comment on peut faire pour modifier la liste sans créer une nouvelle ?On les modifie en modifiant l'index.
00:10:28 :Alors ?On nomme...Pardon, excuse-moi.On prend le tableau, la liste,et puis on nous donne l'index qu'on veut modifier.Ouais.Entre crochets.Ok.Je ne sais pas si on peut en mettre plusieurs d'affilés,mais par exemple, si on veut modifier l'index,on peut en mettre plusieurs d'affilés,mais par exemple, si on veut modifier l'index numéro...
00:10:54 :numéro...Alors, 1, 0, 1, 2.L'index 3, par exemple.Ouais.Tu prends une scénario ici,et t'égales à tel...Et t'égales à 4, par exemple.
00:11:07 :Ouais. Ok.Ok, ok.Est-ce que vous connaissez une techniquequi permettrait...Parce que là, en fait, le but, c'est qu'on se fasse un...Comment dire ?
00:11:17 :En fait, on peut se la faire en une ligne,tout en créant une nouvelle liste.Est-ce que vous avez déjà une liste ?Comment on peut faire ?
00:11:24 :C'est tout court.C'est parfait.Vas-y.Une liste d'expressions ?Une liste d'expressions, non ?Vas-y, vas-y.Alors, je ne maîtrise pas bien les listes d'expressions,mais c'est l'idée que j'ai,parce qu'à mon avis, il faudrait boucler sur la listepour qu'à chaque tour de boucle,il incrémente en ajoutant la valeur qu'on veut.
00:11:48 :Et je pense qu'avec une ligne,ça serait une liste d'expressions.Une liste d'expressions, ouais.Une liste d'expressions, je ne sais pas comment on l'appelle,mais c'est une liste d'expressions.
00:11:53 :Tu me comprends ?Il y a encore carrément plus simple.Oui.Ce que je disais, c'est...Tu passes le taux d'A.Comment ?Ce qui passe le taux d'A,c'est que je leur dis souvent,pensez aux fonctions de base de Python,et en une ligne, il faut tout faire avec, quasiment.
00:12:09 :Là, avec une fonction de base.Là, il faut merge les deux tableaux, c'est ça ?Ouais.Je ne sais pas si c'est possible,mais moi, j'aurais additionné les deux tableaux,et après, j'aurais fait un sorti,je ne sais plus lequel des deux c'est.
00:12:23 :Alors, sauf qu'attention,ici, par exemple,tu as nums1, 1, 2, 3, 0, 0, 0,m égale à 3,donc tu ne vas récupérer que les trois premiers.
00:12:35 :Donc, tu ne veux pas de ceux-là.Ok.On ne veut pas ceux qui sont égaux à 0.Non, on ne veut pas,on ne veut que les trois premiers.
00:12:48 :Ah, ok.Euh, Arnaz.Ouais, alors...Et si on utilise un slice ?Oui, un slice.Un slice.Ouais, ok, donc par exemple ?Bah, sur nums1,puisqu'il faut récupérer les trois premiers,on va faire nums1,entre crochets,ça va être de 0 à 0, 2, 3.
00:13:18 :C'est ça ?Ou 4, je ne sais plus.3 ? Non, c'est 0.Ouais.Donc, en fait, c'est l'idée.Donc, ça sera les trois premiers,donc ça va être,on va faire directement 2, et 3.
00:13:33 :Euh...Ça ne marche pas que avec celui-là,il faut que ça marche avec tous les cas possibles.Oui, c'est vrai.C'est vrai, c'est vrai, oui.
00:13:42 :Euh...Et en plus,si vous le donnez à la moitié de la solution,vous avez les paramètres.Déjà, prêt.M.Ah.Et il y a même un paramètre qui est utile, d'ailleurs.
00:13:56 :Quand on regarde.Le self.Je viens de dire le tf.Non, mais euh...À part le self, je parle.Ok ?Après ça, vous faites quoi, du coup ?
00:14:05 :Après ça, on peut additionner,comme Baptiste a dit,et puis on fait un sorté.Ok, on additionne avec le nums2.En sachant qu'on doit faire aussi les slicespour la deuxième liste.
00:14:23 :Alors, quand tu regardes.Alors là, justement.Je vais regarder en même temps la consigne.Alors, je refais en même temps avec vous,c'est pour ça.
00:14:29 :Quand on regarde la consigne,euh...nums2, il a toujours la longueur.Il a la longueur de n, toujours.Donc en fait,pour moi, le n,ça sert à rien de le remettrepuisqu'il aura toujours la longueur de n.
00:14:41 :Donc on peut laisser nums2 comme ça.Mais sinon, oui, après ça marche bien,on pourrait mettre n.Ok.Et là, après, c'est ça.Vous voulez faire quoi, du coup ?
00:14:51 :Un sorté sur...Je ne sais plus lequel c'est.Il y a soit le sort qui retourne le tableau,soit sortid qui ne retourne pas le tableau.
00:15:03 :Voilà, ici, en fait, on va...On va faire ça,on va faire un sortid sur tout,sur le tableau, ici.Et c'est bon, du coup ?
00:15:12 :Je pense, oui.Alors, le problème, c'est qu'on ne modifie pas la liste existante.Ici, si je lance...Peut-être qu'il va passer, je ne sais pas.
00:15:23 :Non.Qu'est-ce qui me fait ?Il y a un problème.Parce que c'est 2.n.Ouais.Je ne vois rien.Euh...On pourrait faire un...2.n.
00:15:38 :2.n.Il faut que tu fasses 2.n.Ah oui, oui, oui.Je n'ai pas vu.Oui, oui.Excuse-moi.Alors, c'est pour ça qu'à la base,je l'aurais carrément enlevé, ici.
00:15:54 :Hop.Je n'avais pas vu les deux petits points.Ok.Bon, là, ça ne passe pas.Parce qu'en fait, pour eux, ici...Alors, ils ne disent pas...
00:16:04 :Ils ne disent pas...Alors, il n'y a pas d'erreur exacte, là-dessus.Mais en fait,je suis quasiment sûr que si on modifie une partie du code...
00:16:13 :Parce qu'ils vous disent bien de...Ils vous disent qu'il faut...Comment dire ?Modifier le tableau qui est en place.Donc, là, en fait, quand on fait ça,on crée un nouveau tableau.
00:16:23 :Est-ce que, du coup, vous savez comment faire rapidementpour modifier le tableau qui est en place ?Le tableau qui est en place, c'est nums1 ?
00:16:32 :Ouais.Celle pour nums1 ?Non, en fait, vous faites quoi ?Hop.Deux petits points.En fait, ça va modifier le tableau qui est déjà existant.
00:16:43 :Bon, je vais juste tester,parce que j'ai réfléchi une connerie là-dedans.Mais, bon, ça, je sais que c'est sûr pour eux.Ouais, c'est bon, tout passe, là.
00:16:51 :Ok.Donc, normalement...Normalement, si on fait ça,je pense que ça passe aussi.Puisque, pour le moment,on a la consigne nums2, voilà,3 à longueur de n.
00:17:00 :Il est où, mon VS Code ?Parce que, genre, si on a imaginéqu'on a une liste nums1,une liste nums1, hop.C'est marrant qu'il me...
00:17:13 :Ok.On a fait quoi, déjà ?On s'est dit, par exemple, nums1.Ok.Est-ce que j'ai dit ça ?Est-ce que j'ai dit ça à des tests l'autre jour ?
00:17:26 :C'est pour ça que je n'étais pas revenu dessus.Du coup, il a dû se souvenir que je...Bon, peu importe.On peut faire un test.
00:17:32 :On peut se dire nums1et sans...Allez, on va faire ça.On ne va pas s'embêter de faire un sort ou quoi.Ça va être égal à nums1plus nums2.
00:17:47 :Voilà.Hop.On va faire ça.Print.Non, on ne voit pas ton VSCode.On ne voit pas VSCode ?Non, on voit la page.Alors, ça m'inquiète.
00:18:02 :Pourquoi j'ai tout oublié ?Je vais retester quelque chose vite fait.Je vais retester ça vite fait.Pourquoi ? Ok.Bizarre.Bon, on va arrêter la présentation.
00:18:15 :Par contre, j'ai oublié l'onglet, je pense.À chaque fois, je mets tout l'écran.C'est bizarre.Il me semble que j'étais en tire screen, j'ai mis.
00:18:23 :Je réessaye.Vous voyez mon VSCode, là ?Oui.Ah cool, ok.Donc là, quand vous faites ça, on a bien ici nums1,on a deux idées différentes,donc deux adresses mémoires différentes.
00:18:40 :On a notre nums1 qui est ici.Et là, ici, on crée un nouveau tableau.Et normalement,si on fait ça,on a bien la même adresse mémoire.
00:18:53 :On garde bien la même adresse mémoire ici.Donc ça, c'est la technique ici pour modifier le tableau en place.C'est bon du coup ou pas ?
00:19:08 :Je me demande pourquoi nums1, ça ne change pas.Ça crée une nouvelle variable.Pardon ?Je me demande pourquoi nums1, ça crée une nouvelle variablesi on ne met pas les crochets de points.
00:19:24 :Tu réassignes, tu crées une nouvelle liste, simplement.Tu crées une nouvelle liste.Quand tu fais nums1, tu gardes ta liste originale.C'est la technique en Python.
00:19:37 :On ne le voit pas souvent.On ne sait jamais,même pour ceux qui passent au dosa ou pas,je ne sais pas s'ils le mettent.
00:19:45 :Ce n'est pas un truc que tu vois extrêmement souvent.C'est toujours intéressant de savoir sur quoi on fait les tests techniquesparce que ça, ils peuvent vous le demander.
00:19:53 :Quand je regarde un peu ce qu'ils font en test,il y a plusieurs types d'exercices là-dessusqui reviennent avec le modifier le tableau qu'il y a en place.
00:19:59 :Si c'est bon, je passe à la suite.J'ai pris ceux qui étaient différents et intéressants.Celui-là.Allez, on va se faire ça.Je l'ai fait, mais je ne l'ai pas refait, celui-là.
00:20:22 :Je l'avais fait une fois.Il n'est pas forcément évident, en soi,si on veut bien l'optimiser à fond.Je vous laisse faire un petit peu.
00:20:41 :Vous me dites si vous voulez que je fasse l'explicationmême sans qu'on le lise.C'est comme vous voulez.Je vous laisse le faire un peu, puis après...
00:20:47 :Je voulais bien que tu fasses l'explication en même temps,Gabriel, s'il te plaît.En gros, il y a toujours des exemples qui sont sympas.En fait, même des fois quand c'est en français,je n'ai pas l'esprit très mathématique,et c'est ce genre de truc-là qui me...
00:21:12 :Ça me perd un petit peu.Je regarde dans le chat s'il n'y a pas de message.Ça me perd un petit peu, des fois.Heureusement, ils te mettent les exemples.
00:21:20 :En gros, ici, on va avoir un tableau nums.Ensuite, il y a un paramètre, il va y avoir val aussi.Il faut supprimer toutes les occurrences de val,de la valeur qui sont dans nums.
00:21:34 :Par exemple, ici, si tu as un nums 3, 2, 3,et que val est égal à 3, on ne va garder que les deux.Puisque tous les trois, on va les dégager.
00:21:43 :Il est tout con.Là, ici, par exemple, il va dégager les deux.Normalement, on va avoir 0, 1, 3, 0, 4, 0, K, 1, 4, 0, 3.
00:21:52 :On s'en fiche de l'ordre.Je crois qu'il le dit.De toute façon,je change l'arrêt, cf également.OK.Oui, en fait, on s'en fiche que ça soit dans l'ordre.
00:22:05 :C'est pour ça que là, ce n'est pas dans l'ordre.Bref.En gros, c'est juste pour dire que la valeur qui est ici, val,on doit la dégager de là-dedans.
00:22:15 :C'est bon ou pas ?Oui, c'est bon.Merci.Alors, comme dans l'autre, c'est bien écrit qu'il faut modifier la liste en place.Je vous laisse faire.
00:22:27 :On peut aller avec une boucle.Hein ?Oui.Oui, on peut faire une boucle.On peut faire une compréhension de liste.Ah, oui.Pour la compréhension des listes,on peut créer une variable.
00:22:49 :Ce n'est pas moi.Num, simplement.Sans « s » à la fin.Alors, vas-y, dis-moi.C'est pas moi.Num, simplement.Sans « s » à la fin.
00:23:02 :Alors, vas-y, dis-moi.C'est pas moi.Num, simplement.Sans « s » à la fin.Alors, vas-y, dis-moi.Num égale la compréhension.Alors, attention.Ils veulent qu'on modifie la liste existante.
00:23:21 :Ok.Ah, oui.On peut faire num, ça.Ouais.Ok.La compréhension.Alors, on n'oublie pas surtout les petits points.Alors, la compréhension.Go, vas-y.Je préfère toujours faire « for »et puis mettre une variable intermédiaire.
00:23:46 :Par exemple, un trait.Ah, ok.Parce que c'est réutilisable.C'est comme vous voulez.Tu recommences ou on part à la suite.Oui, je recommence par « for ».
00:23:56 :Hein ?Par « for » ?Non, non, non.En fait, dans la compréhension,je dois recevoir « for » pour me souvenir un peu.
00:24:09 :« For », très bas.« In nums ».Ok.On fait un « remove ».Donc, on va faire un « if ».« If », très bas.
00:24:33 :Égale, égale à Val.Et là, je pense qu'il doit y avoir deux points.Deux points pour définir le « if », si je ne me trompe pas.
00:24:50 :Alors, là, ça ne marchera pas comme ça.Là, au niveau de la syntaxe, quand tu pars sur ta liste comme ça,il aura fallu que tu passes sur un « n for n in nums », par exemple.
00:25:05 :Et après, tu mets ta condition.Donc, tu avais dit quoi déjà ?Toi, tu pars sur ta condition « if », tu vois.Oui.Ok.
00:25:15 :« If n égale égale Val,« if n égale égale Val. »Alors, il y a juste un petit truc qu'il faudrait modifier,parce que si tu fais ça, le seul problème,c'est que tu vas garder les éléments que tu ne veux pas, justement.
00:25:44 :Oui, et du coup, là, il faut mettre « différent » plutôt.Voilà, c'est ça.Bon, normalement, ça, ça devrait passer.Au plus simple, moi, j'aurais fait un truc comme ça.
00:25:58 :J'avoue, j'aurais fait ça.Je teste juste Baptiste.Est-ce que tu m'as mis ?Je me permets de te copier ton code.Oui, je ne suis pas sûr que ça fonctionne.
00:26:05 :Donc, toi, tu voudrais faire ça.Tu fais ton remove directement ici.Sauf que là, ça ne marche pas.Ah oui, c'est nul.Pardon, j'ai mis « nombre ».
00:26:18 :Mais peut-être que ça ne marche pas non plus.Et voilà, pareil.Non, là, comme ça, on ne peut pas faire comme ça.On va faire un remove comme ça qu'on balance si on ne peut pas.
00:26:40 :Je vais me servir de temps.Juste, il y a une solution à deux pointeurs.Je ne sais pas si vous avez déjà vu un peu le…Comment dire ?
00:27:01 :Est-ce que vous avez déjà vu ça un petit peu une fois ?Ça vous dit quelque chose ?Non.OK.Alors, en gros, on pourrait partir en fait sur…On pourrait faire…L'ordre, on s'en fiche.
00:27:19 :Je regarde en même temps.L'ordre, on s'en fiche.Juste, tant qu'il pense, ça baptise.Du coup, en fait, remove, c'est sur une méthode,pas une fonction comme ça en Python.
00:27:31 :Tu pourrais le faire sur la liste.C'est le genre malice.remove, mais tu n'as pas de fonction.Ça marche.J'ai oublié de…En gros, ce qu'on avait fait avant, la compression de liste,ça fonctionne, mais ce n'est pas ce qui est le plus efficaceparce qu'en fait…Je vais la remettre.
00:27:51 :On avait fait ça.Si vous faites ça, on va regarder,ils vont vous mettre le temps que ça prend.Je pense qu'on ne sera pas dans les meilleurs.
00:28:01 :Si, ça va.OK.Ça passe.C'est ce que j'aurais fait, mais ça passe.Au niveau efficacité, moi, je n'aurais pas créé en fait…En modifiant la liste,en fait, je n'aurais pas fait une compression de liste.
00:28:20 :On pourrait faire un truc différent.On pourrait se donner un pointeur ici, un K à zéro, par exemple.Donc, ça, ça nous permettrait d'avoir un pointeur.
00:28:28 :Un K à zéro, par exemple.Donc, ça, ça nous permettrait d'avoir la position d'insertion.On pourrait se dire…Alors, c'est un peu plus alambiqué,mais c'est un peu plus efficace au niveau de la mémoire.
00:28:40 :C'est vraiment après pour le fun,parce que dans les entretiens,il y en a qui aiment bien avoir les algos le plus optimisés possible.Donc, on pourrait se dire…On va boucler du coup sur notre liste.
00:28:53 :Sur chaque index,on va se dire si sur l'index en cours,si l'index en cours ici,il est différent de Val,en gros, on va le garder.
00:29:06 :Donc, on va se dire numz K.Donc, à la position…Donc, première position, c'est zéro.Ici,notre liste,on va remettre ici le I.Et en fait,après du coup,on pourrait se faire un K plus ou égal à 1, je pense.
00:29:26 :Je t'ajoute mon code et je vous dis que c'est bon.Je pense qu'on pourrait faire comme ça.Non, ça ne marche pas.Je pense qu'il y a le append en fait.
00:29:37 :Prends ton compte.L'autre, c'est écrit numz I.T'as dit quoi ?Je pense que c'est numz point append I.Non, ça irait pas.Non, ça ne pourrait pas aller.
00:29:52 :Si on fait un point append.Alors, j'ai bien la valeur.Si on prend la longueur de la liste.Si numz I.Numz K.Ouais, j'aurais fait comme ça.
00:30:14 :Ouais, j'aurais fait comme ça, maisça ne marche pas.Ça ne marche pas.Il faudrait bien qu'on copie un VSCode,voir ce que ça me fait.
00:30:31 :Je vais me copier un VSCode, voir.On va le prendre.Ok, on va retourner K.On va retourner la valeur.Il voulait qu'on retourne.On va attendre l'inscription.
00:30:47 :Ok.On doit retourner K.C'est bien ce qu'il me semblait quand je regardais la consigne.Je l'ai lu tout à l'heure.C'est bien ce qu'il me semblait faire.
00:30:57 :Retourner K.Ce qu'il manquait juste, c'était retourner K.En gros, ici, vous avez par exemple.On va se péter un pointeur.On va boucler sur la liste.
00:31:06 :Là, je suis vraiment en mode d'entretien.On va boucler sur la liste.A chaque index,si la valeur est différente de Val,on va recopier notre valeur ici,à l'indice K.
00:31:24 :A zéro.Et ainsi de suite.Comme ça, on va recopier que les valeursque l'on veut garder en début de liste.En gros, c'est ce qu'ils font ici.
00:31:32 :C'est quand on lit un peu la consigne,quand on regarde.Ici, en fait, ils ont 2 et 2.Ils le gardent, mais ils le mettent en début de liste.
00:31:39 :Voilà.K, ça permet d'avoir la positionà partir du début de la liste.Comme ça, à chaque fois que vous avancez,K, zéro, hop, on veut le garder.
00:31:48 :On le met en position zéro.Si on ne veut pas le garder, on ne fait rien.On a avancé une position.Si on veut le garder la fois d'après,on le met à la position qui est juste après.
00:31:58 :Ainsi de suite.C'est un peu plus compliqué comme solution,mais je pense qu'elle est un peu plus efficace.En fait, j'avais lu un peu sur les algos.
00:32:08 :J'étais un peu intéressé à l'époque.Et ça, c'est considéré comme pas mal efficace.Est-ce que c'est bon ou pas ?Ce n'est pas passionnant,mais c'est vraiment juste pour montrerdes cas d'entretien.
00:32:23 :On peut passer à la suite ?Oui.Bon, allez, un dernier.Là, c'est plus facile.La compréhension blisse quand même.Oui.Si, franchement, en entretien,je ne chercherais pas à faire un truc à l'imbiqué.
00:32:37 :Ça, c'est parce que j'avais fait...Pourquoi ? Je l'avais vu.Quand j'ai fait la compréhension de liste,la première fois, il me semble...J'avais fait plusieurs tests.
00:32:48 :Il me semblait que là,j'avais ma compréhension de listeet elle était considérée comme pas la meilleure.Du coup, j'ai cherché,j'ai regardé un peu comment je pouvais faire.
00:33:00 :Il y avait cette solution avec un pointeurqui était beaucoup plus rapide.Enfin, qui était plus rapide, pas beaucoup plus rapide.Voilà.En tout cas, le jour où je l'ai fait,elle était plus rapide.
00:33:13 :J'avoue, des fois, je prends la tête sur des problèmesoù ce n'est pas hyper important,mais j'avais envie d'avoir le plus rapide possible.Par contre, ça, c'est intéressant pour tout en général.
00:33:27 :Pas que pour faire l'entretien technique en soi,mais ça, c'est un truc que vous retrouvez souvent.Et ça, je l'ai déjà eu, je ne sais pas où,sur un autre exercice, une fois que j'avais tapé quelque part.
00:33:38 :Et j'ai eu quasiment le même cas.Quasiment le même cas.OK.Je vous laisse regarder rapidement.Elle est rapide, en gros.Vous pouvez le faire comme ça.
00:33:55 :En gros, le but, c'est qu'il vous donne une liste, un k,et le but, c'est de faire une rotation.Le 7 va passer là, le 6 va passer là, le 5 va passer là,parce que c'est 3.
00:34:05 :OK.Ils vous le mettent là en exemple.Donc, à la fin, on aura bien 5, 6, 7 en premierparce qu'ils seront passés de l'autre côté.
00:34:12 :Ici, il y a k égale 2.99, ils passent de l'autre côté.3, ils passent de l'autre côté.OK.La consigne, c'est bon, du coup ?
00:34:21 :Oui, oui, c'est bon.Alors, celui-là, j'ai mis du temps, sans mettre du temps,parce qu'une fois, j'avais eu le problème sur un exercice.Il y a une période où je me butais sur des exercices un peu comme ça,mais il y a longtemps, donc j'ai perdu l'habitude.
00:34:36 :Donc là, je lui remets un petit pansement.Je suis en vacances, du coup, j'en fais un petit peu.Du coup, en fait, ici, je ne sais pas s'il y a un conceptque vous pouvez utiliser qui est hyper pratique.
00:34:49 :Je vous donne un indice.Parce qu'imaginez, votre liste, j'ai 7 éléments dans ma liste.Imaginez que le k fait 8.Ça veut dire que vous allez faire une fois, deux fois, trois fois,quatre fois, cinq fois, six fois, sept fois,et on revient en fait à la liste initiale.
00:35:08 :Vous êtes d'accord ?Oui.Si le k est plus grand que la liste, forcément, il y a un tour complet qui est fait.Oui.Voilà.
00:35:18 :On revient juste à la position initiale.Donc le but, c'est qu'il y a un moyen en Python qui est...Alors, je sais qu'on peut le faire avec Kiter Tools aussi de manière efficace,je crois.
00:35:30 :J'ai cru voir un gars qui me l'a fait une fois.Mais sinon, il y a 100 bibliothèques, 100 riens,avec juste un opérateur en Python où vous pouvez les résoudre très rapidement.
00:35:40 :Est-ce que vous avez une idée ?Moi, ce n'est pas un opérateur, c'est une boucle.Tu aurais fait une boucle ?On peut l'ajuster.Tu peux faire i égale 0.
00:35:54 :Tu fais une boucle while.i est plus petit que k.Oui.Tu fais... c'est quoi ?nums 0 égale nums moins 1.Alors nums ?
00:36:16 :0, oui. Tu me dis quoi ?Égale nums moins 1.Après, tu fais i plus 1.Plus égale 1.Si, c'est ça.Retourne pas en celui-là, je ne crois pas.
00:36:37 :Dans la consigne, il n'en parle pas du return.Non, il n'a pas l'air.Ecoutez, on va tester ça.Je vais regarder, il ne s'écrit nulle part.
00:36:49 :Il y a 3...Ok, bon allez.Donc là, si tu fais ça, à la base...Ah oui, d'accord.Il faut intervertir, c'est-à-dire qu'il faut rajouter une valeur.
00:37:13 :Une variable où tu prends le moins 1,et après, au moins 1, tu rajoutes de le moins 1.Donc c'est un peu plus long.Ouais.
00:37:26 :C'est clair.Si, tu rajouteras du code.Vous connaissez tous le modulo ?Oui.Je le dis maintenant parce qu'il est hyper intéressant, le modulo.Arsène, il en a parlé dans le chat.
00:37:52 :Je n'ai pas vu.Eh bien oui, le modulo.Excuse-moi, Arsène, exactement.On peut utiliser le modulo.Je suis désolé, Arsène.Vas-y, dis-moi ce que tu voulais faire.
00:38:02 :Premièrement, on fait k égale k modulo 2.Ok.K modulo 2.En sachant que si on a un nombre pair, ça va devenir 0.Si c'est 0, on n'aura pas besoin d'inverser.
00:38:23 :Alors attends, tu es obligé de faire une rotation de tous tes nombres.Peu importe que ce soit pair ou impaire.Vraiment ?Quand tu regardes, ils te mettent 1, 2, 3, 4, 5, 6, 7.
00:38:38 :K égale 3.Ça te fait 5, 6, 7, 1, 2, 3, 4.Et tout doit être balancé de l'autre côté.C'est une rotation qui doit se faire.
00:38:46 :Peu importe le nombre.Là, je suis bloqué.C'est galère, mais en fait, ça n'est pas tant que ça.Même moi, je l'impaire.En gros, je me ferai une variable rotation ici.
00:39:00 :Je vais m'expliquer.On va se faire une variable rotation.Ce qu'il faut se dire, c'est que si le nombre de rotations est plus grand que le tableau,forcément, on vient à la position initiale.
00:39:19 :On pourrait très bien se dire d'avoir une...Grâce au modulo, on peut récupérer la rotation utile.On ne va pas s'amuser à faire...On va récupérer, si le tableau fait cet élément,si on met 8 en rotation, on va faire une rotation complète,et après, on ne va en bouger qu'un.
00:39:45 :On aura un tour complet.On pourrait très bien dire ici...On a K, donc la rotation.Modulo, ici.Et on va prendre la longueur du tableau.
00:39:59 :Là, quand on fait ça...Je ne sais pas comment je pourrais vous l'expliquer facilement.Le modulo, ce n'est pas forcément le plus facile à expliquer.
00:40:12 :Par exemple...Excusez-moi, j'ai mes notifications qui se mettent dessus.Imaginons...Si je l'explique comme ça...Imaginons qu'on ait un tableau de 3 éléments.Ok, on va faire ça.
00:40:28 :Imaginons qu'on ait un tableau de 3 éléments.On va faire ça.Là, j'ai 3 éléments dans mon...Je suis où ?J'ai un tableau de 3 éléments,mais on voudrait faire 7 rotations.
00:40:44 :Si je fais 7.Modulo, 3.Donc là, 3, c'est la longueur du tableau.Je le mets dans le mur.Et 7, c'est le nombre de rotations.
00:40:54 :En gros, ce qu'il va se passer,c'est qu'on va récupérer ce qui nous intéresse.Au modulo, c'est qu'on peut récupérer le reste.En gros, c'est combien de fois 3 rentre dans 7.
00:41:07 :Il va rentrer 2 fois.On va être à 6.Le reste, ça va être 1 pour arriver à 7.C'est ça le modulo.Pour ceux qui ne sont pas trop habitués au modulo,je vous conseille de le bosser.
00:41:25 :Je sais que j'ai passé une soirée dessus complèteil y a au moins un an.Même si des fois, il me sort un peu de la tête,je m'y remets des fois dessus,parce qu'il est vachement important, celui-là.
00:41:35 :Hop là.Du coup, je disais...De cette manière, vous allez récupérerla rotation réelle que vous voulez.Ce qu'on va faire, du coup,c'est qu'on peut récupérer...
00:41:51 :Il y a le tableau qui est en place, ici.On peut récupérer, du coup,les...Je ne me trompe pas.On va se faire du moins...
00:42:01 :On va récupérer, du coup,les derniers éléments,et ensuite,on va prendre tout sauf les derniers éléments.Je vous explique.Ici, on pourrait très bien dire...
00:42:13 :Faire ça.Hop là.Donc là, c'est du slicing avec un nombre négatif.Là, on va dire qu'on ne veut récupérerque les derniers éléments,mais avec notre rotation réelle.
00:42:25 :Et...Ici, je vous laisse deviner.Quand on veut récupérer tout sauf les derniers éléments,comme on fait en slicing,négatif...Excusez-moi, je pense que c'est plus...
00:42:45 :Là, je dis que je voulais les derniers éléments.Maintenant, je veux tout sauf les derniers.Vous avez dit quoi ?Deux points moins un.On voudrait avoir de manière dynamique,mais du coup, c'est R.
00:42:59 :Deux points moins R.Je pense que ça fonctionne.J'ai passé des seconds à...Ouais, ça fonctionne.Je vous dis qu'il y a une époque où j'en faisais beaucoup.
00:43:10 :Du coup, maintenant, j'aime bien,mais ça donne mal au crâne.Donc là, récupérer la rotation réelle.Et ici, récupérer du couples R derniers éléments.
00:43:22 :Et là, tout sauf les R derniers éléments.Donc là, on a bien cet exemple-là.Ici, on veut récupérer du coup6K égale à 3.On récupèreles derniers éléments de la rotation.
00:43:35 :Et après, on va mettrele...Comment dire ?Tout sauf les derniers, du coup, après, à la fin.Voilà. Est-ce que ça vaou ça donne un peu mal au crâne ?
00:43:47 :Ça va pour moi.À travailler le modulo, mais ça va.Ouais, il faut se mettre dedans.Je sais que... En plus, moi, j'ai pas une tête
00:43:57 :de mateux, donc j'avoue quemoi, c'est un concept, j'ai eu beaucoup de mal au début.En fait, ça allaitjuste pour avoir les nombres paire et impaire.
00:44:05 :Mais sinon,j'avoue que c'est compliqué au début.Le modulo, de toute façon,si du coup,vous êtes un peu habitués,on va faire un truc.
00:44:19 :La règle.Juste la règle.Hop.Là, c'est bien.Merde, c'est où ?La règle ici.Merde, c'est chiant.Ici, mon nombre est plus grand.Là, je suis bien.
00:44:51 :Ça va bien me renvoyer 3.Ici,c'est plus petit.Lui, c'est combien de fois il rentre.Voilà.Je pense que la règle, on pourrait diretout simplement que...
00:45:05 :Je me l'étais noté,j'ai des notes sur obsidienne.C'est ça.Si A est inférieur à B,on va dire ça. Si A est inférieur à B,
00:45:15 :le résultat sera A.Par contre, si A est supérieurou égal à B, on prend le reste.Simplement.C'est juste ça qu'il faut se retenir avec le modulo.
00:45:27 :Après, s'il y en a qui veulent s'amuser,je pense que je peux vous lancer sur le sujet.Il y a peut-être moyenet je pense qu'il y a fortement moyende le résoudre avec Guitar Tools.
00:45:41 :S'il y en a qui veulent tenter un soir, un jour.J'étais sur LeetCode et il y a un top interviewsur 50. C'est vraiment ce qu'ils font
00:45:55 :en entretien.Tu m'as dit qu'il y a moyen de le travailler avec quoi ?Je n'ai pas saisi l'outilque tu as mentionné.Avec Iter Tools, le module Iter Tools.
00:46:05 :Iter Tools et je croisque tu avais Cycles.Je pense qu'avec ça,il y a un moyen de...Avec la répétition comme ça.Il y a peut-être moyen de faire un trucavec Iter Tools.
00:46:31 :Regardez.Je pense qu'il y a moyen de faire un truc comme ça.Je vais arrêter de vous prendre la têteavec ces trucs-là.C'est con.
00:46:45 :Je pense qu'on fera un prochain à la rentrée.J'avais prévu de...Il y en a qui font un peu de design patternou pas du tout ?
00:46:53 :Attention, c'est un grand mot.Oui, ça me parle.Si vous codez proprement,vous en faites forcément un petit peu.Je vois l'idée du design pattern,mais je n'ai pas eu à l'utiliser.
00:47:11 :Je sais qu'il y a des patternspour coder proprementde nom. Je sais qu'il y a des patternsqui s'appellent Iterator,Constructor et autres.Je ne les maîtrise pas.
00:47:23 :Moi, je vous rassure,je ne les connais pas tous loin de là.Je m'en fiche beaucoupde Django.L'avantage, c'est que j'ai toujours eude bien découper mon code.
00:47:35 :Les employeurs ont toujours bien aimépour qui j'ai bossé.Je me suis intéressé aussi en parallèleau design pattern.Ça vous motiveà bien découper votre code.
00:47:47 :On en parlera un prochain.Là, il était intéressantde parler de ABC.Comment définirune interface,faire un peu de polymorphismeet après avoirune factory qui permetde centraliserla logique de création des classesen fonction de la classedont on hérite.
00:48:11 :Ça risque de durer longtemps,donc on fera ça sur le prochain.Le prochain,je ne sais pas quand on le fera.Kibo,on vous laissera un messagesur le Discord.
00:48:25 :Pas sûr qu'il y en a la semaine prochaineet peut-être pas au mois d'août.Est-ce qu'il y a des questions ?Ou pas du tout ?
00:48:39 :Sinon,j'ai bien aimé la plateformed'entraînement.Je l'ai fait une foispour le fun.Le mentorat,c'était juste pour testeret voir si ça accrochait.
00:48:57 :C'était surtout pour vous montrerque c'est intéressantde faire des petits problèmescomme ça.Je ne passe pas mon temps dessus,je vous rassure.Pour l'instant,les boîtes pour qui j'ai bossén'ont jamais demandé ça.
00:49:15 :Ils ont préféré que je parlede mes projets plutôt que de faire ça.Mais ça existe,je connaissais un mec sur Twitteret il communiquait que des trucs dangereux.
00:49:25 :C'était impressionnant.J'espère que ça ne vous a pas dépluet queça peut vous motiver à faire des petits exercicescomme ça de temps en temps.
00:49:37 :C'était très intéressant.Ça va me pousserà travailler sur certains aspectsdu travail avec les listeset égalementavec l'opérateur modulo.Il ne faut pas rester bloqué.
00:49:51 :J'en parlais avec un gars,un pro de chez pro,il adore faire ça.Vous vous servez d'une IAcomme prof ou senior.Vous ne lui demandez pas la solution,mais si vous vous bloquez,vous lui demandez de vous guider.
00:50:07 :Ça permet de réfléchir et de travailleravec l'IA.La première fois,le coup du modulo,j'ai dû tomber sur ce cas il y a un an,je commençais,j'étais bloqué.
00:50:21 :Donc voilà.Ok.Je crois que je vais faireles exos.L'IA est énervé du coup.C'est pas mal,j'aime bien.C'est cool.J'étais en vacances,c'est rigolo.
00:50:41 :Lui il m'a un peu saouléle best time to buy and sellen stock.Moi j'ai trouvé chiant perso.Ok.Vous voulez le lienpeut-être dans le chat ?
00:50:55 :Comme ça c'est le lien tout près.Oui je suis là.Merci.Pour ceux qui veulent en faire un petit peu.Écoutez,c'est tout ce que j'ai à dire.
00:51:09 :Juste dernière chose,les exercices sur docstring,moi perso,je ne suis pas pour un parbois,mais je les préfère parce que c'est pluscomment dire,ça me paraît plus réel.
00:51:23 :Je préfère le genre,quand j'ai commencé, j'accrochais plus.Pour moi c'est un peu abstraitles exercices de joueur là, pure algo.Mais,sur ce site là, je trouve bien aussi.
00:51:35 :Je ne sais pas si il y en aquand même, c'est les Coding Games.Ça me parle de nom.Oui.J'ai vraiment du mal à l'accrocher.
00:51:45 :C'est vraiment...Après c'est hyper réputé aussi,c'est beaucoup utilisé dans les tests techniques, je sais.Et moi si je compte sur les Coding Games,je ne suis pas bien parce que je n'aime pas du tout en fait.
00:51:55 :Donc regarder un petit peu aussi pour les tests techniques,ça peut être sympa, mais j'en ai fait 2-3,mais je n'accroche pas du tout.Mais sinon c'est bien foutu quand même.
00:52:05 :Ah oui.J'avais un truc, je crois quetu en avais parlé sur une API.Tu les appelles à une APIet c'est pareil, tu déplaces un personnage.
00:52:15 :Ouais.Par rapport à Coding Games ?Non, c'est un autre truc, ça s'appelle Artifact.Ok.C'est vraiment un jeu où tu peux coderdans le langage que tu veux.
00:52:29 :Ok.Et ils ont une API,toi tu fais des appels à l'APIpour déplacer ton personnage,ta pièce, etc.C'est marrant.Je vais juste me le mettre là.
00:52:51 :Voilà.Merci pour le partage.Après, ce que je conseille,vous avez déjà du niveau tout le monde,pour ceux qui débutent, c'est vraimentde faire tous les exercices.
00:53:03 :Plus il y a plein de thèmes différents,il y a de la PO, il y a de la fonction,il y a de l'algorithmie.Moi je les trouve plusréalistes,plus parlants.
Aucune occurrence trouvée pour « ».