Session du 07 janvier 2026 à 21h00
Bases du Langage
Algorithmique & Performance
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 : Les fonctions lambda
Les fonctions lambda
00:00:00 :Ok, allez, on va commencer. Donc bonsoir à ceux à qui je n'aurais pas salué en arrivant.Je suis un petit peu occupé, désolé. Donc, deuxième live de l'année. Gabriel Magrier,
00:00:17 :la politesse. Déjà, bonne année à tous, bonne santé surtout. Plein de revues smooth pour resterdans le thème. Plein de lignes de code et peut-être une certification TOSA pour ceux
00:00:31 :qui préparent la certification. Voilà, plein de bonnes choses. Ce soir, je vais vous faire unepetite séance de mentorat qui risque de ne pas être super, super longue. Mais c'est sur une
00:00:43 :petite particularité de Python qu'on voit vite fait, généralement, et on ne finit pas dessus.Donc, ce soir, je vais attaquer sur les fonctions lambda. Pour l'instant, tout le monde connaît
00:00:54 :plus ou moins les fonctions lambda ou on a entendu parler. Oui, un peu. Alors, les fonctionslambda. Je vais faire ça, je vais vous partager mon terminal puisqu'on va travailler dans le
00:01:17 :terminal ce soir. Hop, voilà. Au niveau de la taille, c'est bon pour tout le monde? Oui,oui. Alors, les fonctions lambda. Dans Python, généralement, quand on veut faire quelque chose,
00:01:43 :on va créer une fonction. D'accord. Alors là, on va essayer de faire ça vite fait en terminal.Normalement, ça ne pose pas de souci particulier. Hop, voilà. Qu'est-ce que je fais, moi? Désolé,
00:01:59 :je ne suis pas très performant, je suis en train de crèver. Voilà. Donc, normalement, si je faisça, ça devrait marcher. Sinon, je basculerai sur VS Code. Si je fais un def addition, voilà,
00:02:14 :par exemple, x, y, hop. Je lui dis return x plus y. Ok. Maintenant, si je lance ma fonction,on va vérifier que ça marche. Pour le moment, il n'y a pas de raison. Donc là, typiquement,
00:02:43 :ce que je viens de faire, c'est une petite fonction qui ne fait pas grand chose au final,qui est une simple addition. Donc là, je me suis embêté à créer une fonction pour pouvoir
00:02:54 :l'appeler et l'utiliser. L'avantage des fonctions lambda, c'est que vous allez pouvoir créer pleinde petites fonctions de cet ordre-là. Alors attention, on fait rarement des choses hyper
00:03:05 :complexes avec les lambdas, c'est vraiment des choses simples. Mais ça va vous permettre d'éviterde créer une fonction pour obtenir un résultat. Donc là, typiquement, par exemple, l'addition de
00:03:16 :deux chiffres et devoir aller envoyer les paramètres dans une fonction, utiliser lafonction, l'appeler, récupérer le résultat, et ainsi de suite. Donc là, typiquement, pour cet
00:03:29 :exemple-là, qu'est-ce qu'on aurait pu faire ? Par exemple, au lieu de créer notre fonction ici,on aurait pu carrément faire directement la lambda. Donc là, typiquement, le mot-clé pour
00:03:47 :les fonctions lambda, c'est lambda. D'accord ? Je mets mes paramètres x, y. Là, je mets deuxpoints, c'est-à-dire qu'en fait, c'est comme si j'avais défini une fonction. Je lis ce que je
00:04:05 :veux que ma fonction retourne. Donc ici, x plus y. Et là, directement derrière, je passe mesparamètres. Et on a exactement la même chose. Déjà, vous remarquez qu'au niveau de l'écriture,
00:04:24 :on s'est quand même un petit peu moins embêté qu'avec la solution précédente, parce que déjà,on n'a pas eu besoin de se creuser la tête pour trouver le nom d'une fonction. Je pense que c'est
00:04:32 :un petit problème auquel vous êtes parfois confrontés, parce qu'à force de créer lafonction qui ajoute quatre chiffres, parce que ça va me permettre de... Vous essayez de trouver un
00:04:45 :nom super cool. Là, vous n'avez même pas besoin de vous embêter à trouver un nom. Vous faitesvotre lambda et terminez. Donc là, on fait ça dans du terminal, mais vous pouvez parfaitement
00:04:53 :l'intégrer dans l'escript. Là, je vous le montre en terminal, parce que c'est beaucoup plus parlantdirectement, mais c'est comme dans tout ce qui est du Python. C'est aussi bien dans le terminal
00:05:04 :que dans l'escript. Donc l'idée d'une lambda, c'est vraiment de créer une fonction qu'on ne vapas réutiliser particulièrement, mais qui fait quelque chose de simple et qui va nous permettrede résoudre un problème à un instant T. L'autre possibilité de la lambda, c'est qu'on peut
00:05:27 :l'utiliser pour faire une fabrique de fonctions. Je vais vous montrer ça. Là, on va définir unepremière fonction, qui va dire... On va rester sur le thème de nos additions. Donc fabriquer
00:05:46 :une addition. Et là, on lui passe un paramètre. Le nombre. Ensuite, on va retourner notre lambda.D'accord. Donc là, on lui donne le deuxième paramètre. Et on lui dit de retourner x plus n.
00:06:21 :OK. Donc là, qu'est ce qu'on fait avec ça ? Eh bien, ça veut dire qu'on va pouvoir réutilisercette fonction d'addition plusieurs fois. Par exemple, on va d'abord vouloir faire des,
00:06:36 :mettons, plus 5, plus 8, plus 15, peu importe. Pour ça, on va créer nos plus. On va faire unplus 15, égal. Fabriquer une addition. Et je lui passe mon paramètre 15. OK. Là, il ne se passe
00:07:07 :rien. On va en créer plusieurs. On va faire plus 4. Fabriquer une addition. Et là, on lui passe 4.Donc maintenant qu'on a fait ça, qu'est ce qu'on en fait ? Eh bien, en fait, ce qu'il faut voir,
00:07:29 :donc si vous êtes un petit peu observateur, notre fonction fabriquer d'addition ne retournepas un résultat en tant que tel. Mais du coup, il retourne une fonction. Une fonction lambda.
00:07:40 :Ce qui fait que maintenant, on va pouvoir utiliser nos plus 4 et plus 15 comme desfonctions auxquelles on pourra passer un paramètre. Donc on va commencer avec le plus 15. Et on va
00:07:56 :lui passer 5. Et qu'est ce qui se passe ? Il nous a fait 15 plus 5. Avec le plus 4. Je vais luipasser, allez, 8. Il me revient bien. 8 plus 12. Donc vous voyez déjà que les lambdas, c'est
00:08:25 :quand même assez puissant. Ça va vous permettre de créer des pseudo-fonctions que vous allezpouvoir utiliser. Vous pouvez l'utiliser pour faire des fonctions qui ne seront pas réutilisées dans
00:08:37 :le script. Ou honnêtement, même tout bêtement, je reprends l'exemple de l'addition qu'on a faitjuste avant. Créer une fonction juste pour faire une addition, ça a bien deux minutes. Mais on perd
00:08:52 :un petit peu de temps avec ça. Autant créer une lambda, ça gagne du temps. Oui ? Oui. Jecroyais que quelqu'un voulait poser une question. Est-ce que c'est clair pour tout le monde jusque
00:09:08 :là ? Oui. Maintenant, les lambdas, on peut les utiliser aussi dans d'autres cas. Par exemple,on peut les utiliser pour faire du tri. Donc, par exemple, admettons que je veux avoir tous
00:09:30 :les nombres pairs sur une liste de chiffres. Alors, la chose qui va vous venir le plusrapidement à la tête, c'est de faire ça. On va créer une liste de chiffres.
00:09:43 :Voilà.On est parti, parce que je ne sais jamais celui-là, c'est... non, c'est le 3, 1, 1, 1, 1, 1, 1, c'est ça.Ah, j'ai toujours un mal de... ah, non.
00:10:21 :Là, c'est pour faire un dictionnaire, ça.Ouais, ouais, mais je cherche pour faire les listes, mais...C'est le 5.Ben, c'est le 5, mais là, je suis sous-maqué.
00:10:33 :Ah, oui.Et c'est toujours casse-bonbon pour trouver...Ah.Non.C'est le...Ouais, sur Windows, c'est le 5.Ouais, ben...Attendez, je vais le faire simple.
00:10:45 :Désolé.Au moins, ce serait ça.Ah.Ah, c'est vrai. Je l'ai trouvé.Ok. Désolé.Bref.Alors, on est parti.Donc, alors, on va créer notre liste de chiffres.
00:11:30 :Ok.Est-ce qu'on aurait pas une manière plus simple de faire ça ?Avec Range ?Voilà.Oui.Alors, vas-y, avec Range, on ferait comment ?
00:11:59 :De 0 à 11.Mais Range, entre parenthèses, 0.11.Il n'y a pas besoin de mettre le 0, je pense.Non, parce qu'il commence automatiquement au 0.
00:12:10 :Oui, c'est ça.Range.11, oui.Hop.Est-ce que ça a marché ?Ben non, parce qu'il faut mettre la fonction liste devant.Voilà.Ok.Tac.
00:12:37 :Donc, on va la primer quand même pour être sûr.Il manque un R.Bien vu.Voilà.On a bien notre liste.Ok.Pas de souci.
00:12:55 :Hop là.Alors, ensuite, qu'est-ce qu'on ferait ?On peut faire soit une boucle.Je vais essayer de lire un peu parce que je ne peux pas.
00:13:10 :C'est tout.Je vais la faire en aveugle.Alors, on ferait, donc, for i in liste chiffre.D'accord.Ah non, ça, il faut que faire autre chose.
00:13:29 :On ferait notre liste paire, par exemple.Ok.Égale, clac, clac, liste vide.For i in liste de chiffre.Clac.If.Alors, comment pourrait-on savoir si c'est un nombre paire ?
00:13:58 :Avec un modulo.Oui, avec un modulo.Très bien.Alors, if i modulo 2 égale 0.Clac.Clac, clac.Liste paire point append i.Ok.On est bon pour tout le monde.
00:14:26 :Alors, si je fais ma print liste paire.J'ai oublié des trucs parce que je ne peux pas bouger ça parce que ça m'embête un petit peu.
00:14:38 :Ah, c'est super.Print liste paire.Clac.Ça a marché.On a bien uniquement nos chiffres paires dans la liste.Maintenant, on a une autre méthode qu'on pourrait faire.
00:14:58 :Faire une compréhension de liste.Oui, ça irait plus vite en une ligne.Voilà.Donc, ça c'est la version de compréhension de liste.Maintenant, vous pouvez faire, sans passer par la compréhension de liste, exactement la même chose avec les fonctions ARM2.
00:15:20 :Je vais vous montrer.On ne va pas le mettre dans une variable, ce n'est pas l'intérêt.Donc, on va faire liste.Ok.On va utiliser ensuite filteur qui va nous permettre de filtrer les éléments d'une liste.
00:15:36 :Le filteur, il a besoin d'une fonction ou d'une indication pour dire comment il liste.Ok.Et d'une liste.Donc, on va utiliser notre lambda.Ok.
00:15:51 :On va lui dire qu'il va prendre chaque élément.Et qu'il va garder que les éléments qui, dans le modulo 2, sont égaux à 0.Ok.
00:16:08 :Et la liste que je vais lui passer, je vais lui passer un range directement.On va rester sur nos 3 secondes.Je ferme.Je ferme.
00:16:20 :Et je ferme.Et là, qu'est-ce qu'il se passe ?On obtient notre liste directement.Vous voyez que la lambda peut vraiment s'appliquer et s'utiliser dans beaucoup de contextes au bout du compte.
00:16:37 :Je vais vous montrer une autre utilisation des lambdas.Je pense que celui-là, par contre, il va vous surprendre, mais je vais le passer sur VSCode.
00:16:48 :Ça sera plus simple.Je vais déjà démarrer VSCode.Je vais basculer.Je vais basculer.Voilà.Voilà.Hop.Et.Voilà.On y arrive.C'est bon pour vous, pour le VSCode ?
00:17:32 :Oui.Ok.Alors, on va faire un nouveau fichier.Et là, on va faire un nouveau fichier.Et là, on va faire un nouveau fichier.Et là, on va faire un nouveau fichier.
00:17:48 :Et là, on va faire un nouveau fichier.Voilà.Ok.Au niveau de la taille des caractères, c'est bon pour vous ou pas ?Oui.Ok.
00:18:16 :Alors, on a utilisé lambda pour remplacer des fonctions et pour faire office de fonction.Maintenant, on va pouvoir l'utiliser aussi pour remplacer des méthodes.Puisque, somme toute, une méthode dans une classe ne reste qu'une simple fonction.
00:18:36 :D'accord ?Donc, admettons, je veux créer une classe.Alors, on va rester sur le thème habituel des classes, à savoir les fameuses classes voiture.Voilà.
00:18:52 :Par sympathie, je ne parlerai pas de neige ou quoi, de voiture qui glisse sous la neige.Ok ?Et je pourrais, si je veux faire ma classe voiture de base, il faut qu'à minimum, je fasse quand même un petit définit.
00:19:10 :D'accord ?Quoique...On va essayer de s'en passer.Euh...Def, rule.On va voir si ça passe.Voilà.Print.La voiture roule, ça va très bien.
00:19:31 :Def.Bon allez, on va quand même être pas très loin.Crash.Hop.La voiture a eu un accident.Ok ?Alors, si je veux créer ma voiture.
00:19:41 :Donc, je vais créer ma voiture.Hop.La voiture.Ma voiture roule.Ma voiture crash.Ok ?On va sauvegarder tout ça.On va exécuter.Voilà.
00:20:00 :Pas de soucis, ça fonctionne.D'accord ?Maintenant, on a fait un petit peu beaucoup de lignes d'écriture pour deux trucs de base.Donc là, on va pouvoir remplacer tout ça grâce à des lambdas.
00:20:12 :Je vous montre.Vous allez voir que là, d'un seul coup...Hop.Égal.Et là...Je vais mettre les R, parce que les R se sont rajoutés.
00:20:33 :On va relancer ça.Et ça fonctionne pareil.Donc en fait, vous pouvez utiliser les lambdas pour créer des méthodes basiques.Alors, clairement, vous pouvez mixer les deux.
00:20:52 :On pourrait très bien imaginer...Hop.Je rajoute...Def.Garer.Clac.Print.La voiture est garée.Je rajoute une exécution.Ça ne pose aucun problème.OK ?
00:21:14 :Donc vous pouvez aussi utiliser les lambdas pour faire des méthodes simples dans vos classes.Typiquement...Par exemple...Une méthode qu'on va pouvoir créer assez régulièrement.
00:21:33 :Def.Afficher.Voilà.On va laisser un affiché de cours.Voilà.Self.Ceci est une voiture.On va le remplacer à la place de garer.On ne va pas mettre 15 lignes de code à chaque fois.
00:21:57 :On lance.OK.Là, le def affiché, je pourrais bien le remettre ici.OK.On supprime notre fonction.On le lance.Pas de soucis, ça fonctionne.
00:22:17 :Et si on a fait notre finite, on pourra même utiliser nos arguments.Je vais passer ça.On va faire l'init de la fonction.Self.On va y mettre les marques.
00:22:43 :Modèle.OK.Voilà.Je vais créer ma voiture.On va y mettre une marque et un modèle.Une année.Allez.Toyota Corolla Z12.Peu importe.Et là.
00:23:07 :Je peux très bien.Tac.Voilà.Il a compris ce que je voulais faire.Je vais utiliser les attributs de mon objet dans ma fonction lambda.
00:23:29 :Et vous allez voir que ça ne pose absolument aucun problème.D'accord ?Maintenant, par exemple, on pourrait dire affiché.On va dire que, par exemple, la voiture est vendue.
00:23:44 :Ou en location.Ou à la vente.Ou on vient de l'acheter.Je peux rajouter un paramètre ici.Puisque le self, le lambda, reste une fonction.
00:23:58 :Je mets message.Je rajoute ici mon message.Dans mon affiché, je vais passer mon message.On va dire vendu.Hop.Je sauvegarde.Boum.Pas de soucis.
00:24:25 :OK ?Donc vous voyez, les fonctions lambda, c'est vraiment des fonctions à part.Vous pouvez rajouter des arguments tant que vous voulez.Vous pouvez, comme je viens de vous le montrer, les utiliser pour remplacer des méthodes de classe.
00:24:38 :Et ce n'est pas pour autant que vous serez limité.Ça ne va pas se limiter à un seul pride.Vous pouvez mettre quelque chose tout court.
00:24:46 :Oui ? Fait-il ?Il y avait une question que je me posais.Juste une petite précision.Inutile de lever la main.Tu peux poser ta question directement.
00:24:58 :On n'est pas à l'école.OK.Non, mais il y a une question que je me posais.Est-ce que la fonction lambda, on ne pourrait pas l'utiliser essentiellement pour du tri ?
00:25:08 :Par exemple, j'ai une liste.J'ai envie de la trier en fonction, par exemple, de la longueur des éléments qui figurent dedans.Est-ce que ça ne pourrait pas s'utiliser ?
00:25:20 :Est-ce que ce n'est pas une utilisation courante au final ?Parce qu'on a une fonction pour trier les listes, genre sortid.Et il me semble qu'il y a un qui, là.
00:25:30 :C'est qui.Ce n'est pas bien de regarder les notes du prof.Non, je n'ai pas regardé les notes du prof.Tu vas être puni.Ah, OK.
00:25:41 :Bon, ben nickel.Alors, est-ce que déjà au niveau de l'utilisation des classes, par l'utilisation lambda classique, on va dire, c'est bon pour tout le monde ?
00:25:50 :Donc, quand vous le voyez, c'est vraiment une fonction, d'accord ?Alors, on n'appelle pas généralement les fonctions anonymes, puisque la seule différence qu'il y a par rapport à une fonction,si ce n'est le formalisme de la définition du DEF et ainsi de suite,c'est le fait qu'on ne lui donne pas de nom.
00:26:07 :C'est pour ça qu'on appelle ça aussi les fonctions anonymes.On vous entendrait souvent fonction lambda ou fonction anonyme.Mais c'est clairement une fonction à part entière.
00:26:15 :Comme vous venez de voir, vous pouvez faire quand même beaucoup de choses.Alors, maintenant, vu le style d'écriture de la lambda,des conseils de commencer à faire des boucles, à faire des actions hyper complexes au sein d'une fonction lambda.
00:26:32 :Parce que vous allez vite vous retrouver face à un casse-tête.Sans compter les limitations de la fonction lambda.Mais, comme vous le voyez là, pour des petites actions, comme ce qu'on vient de faire là,ça rentre parfaitement dans le cadre.
00:26:49 :Donc, on va en venir à la fonction un peu avancée de lambda.Hop, c'est comme ça, les notes.Je me suis noté que je ne l'utilise pas souvent.
00:27:19 :On va rebasculer sur le terminal pour ça.J'ai une question, la lambda, si on la nomme hors des classes, on peut la réutiliser ?Non, à moins de l'avoir mis comme on avait fait tout à l'heure avec le terminal.
00:27:44 :Comment ?Si on met par exemple comme là, un peu comme une variable et égale, et puis après on met lambda derrière,on ne peut pas utiliser la variable ?
00:27:53 :Ah oui, tu peux. C'est ce que j'étais en train de te dire, tu peux la réutiliser dans ce cadre-là.D'ailleurs, c'est quelque part, c'est exactement ce qu'on fait là.
00:28:02 :Oui.Tu vois.C'était hors des classes, je me disais, est-ce que c'est possible de le faire aussi ?Après, c'est possible de le faire dans tous les cadres.
00:28:15 :Mais après, ce n'est pas spécifiquement conseillé.Parce que tu risques de te retrouver face à certaines complexités,et pour le compte, tu vas t'y perdre.
00:28:33 :Si tu dois réutiliser de nombreuses fois ce que tu as mis dans ta lambda,crée une fonction à ce moment-là.D'accord ?Les fonctions lambda, on est vraiment sur soit quelque chose de très simple,on ne veut pas s'embêter à faire du code compliqué,s'embêter avec le formalisme d'une fonction,
00:28:53 :et surtout parce qu'on sait qu'on ne va pas l'utiliser,on ne va pas y faire appel plusieurs fois.L'idée, c'est vraiment de la fonction simple,et peu réutilisée.
00:29:05 :A partir du moment où c'est quelque chose que tu vas réutiliser souvent,il est toujours mieux de faire une fonction.Surtout pour le suivi de ton code.
00:29:14 :Alors, je vais vous montrer une des dernières choses de la fonction lambda.Je vais faire ça pour nettoyer un petit peu le terminal.Voilà.Voilà.
00:29:28 :La lambda, elle peut servir aussi de clépour un tri avancé.Donc, par exemple,si je fais un...Alors, normalement,je vais créer ma listeavec...
00:29:51 :.....................Maintenant,si je fais un sortie dessus,clac,il me sort exactement la même chose.Jusque là, rien de bien surprenant.
00:30:30 :Mais admettons queje voudrais créer cette liste,mais je voudrais faire un sortiesur, non pasla valeur réelle, donc à savoir,on va s'arrêter, mais la valeur absolue.
00:30:48 :Comment est-ce que je pourrais faire pour trier cette liste selon les valeurs absolues ?Avec un paramètre key.Voilà.Et donc là,avec le paramètre key, on va pouvoir utiliser la lambda.
00:31:10 :Et d'ailleurs, c'est très souvent comme ça que la lambda est utilisée.C'est ça.Donc, je vais vous montrer la sortie.On va faire le range directement, parce qu'avec sortie, ça vamarcher sans problème.
00:31:23 :On n'a pas besoin de préciser que ça va être une liste.Et là, je vais ajouter mon paramètre key.Et pour le key, je vais faire une clé.
00:31:34 :Alors, si je veux qu'il me compare les valeurs absolues,le plus simple, c'est de comparer par rapport à la valeur au carré.Comme ça, ça va forcément m'éliminer les signes négatifset il fera un tri en fonction.
00:31:48 :Donc, je vais utiliser ma lambda.Je vais lui donner le paramètre.C'est-à-dire, c'est celui sur lequel il déterre.Et je vais lui dire de l'élever au carré.
00:31:59 :Pour qu'il me fasse le tri.Au cube.Et on va avoir le même résultat.Et là, attention.Boum !J'ai bien trié par mes valeurs absolues.
00:32:21 :Donc là, vous imaginez bien qu'avec ça, on va gagner un sacré temps.Parce que sans l'utilisation de key, de cette fonction de lambda,il aurait fallu qu'on crée notre liste.
00:32:37 :Tiens, je vais faire ça.Histoire de vous montrer un petit peu ce qu'on gagne.On va l'appeler liste absolue.Là, je crée ma liste.Ensuite,pour m'assurer qu'ils sont tous...
00:33:02 :d'avoir tous mes chiffres qui sont en valeur absolue.Il va falloir que je boucle dessus.Je tombe sur un premier chiffre, donc je pars sur une abstraction.
00:33:28 :Je sais que j'ai un chiffre qui a une certaine valeur.Donc, pour qu'il soit en valeur absolue,je vais le multiplier par...Je vais regarder d'abord s'il est inférieur à 0.
00:33:40 :D'abord, c'est un chiffre négatif.Oui.Donc,IFIinférieur à 0.D'accord.Clac.Je faisIégalI au carré.Oui, pas forcément, parce que là, I au carré,si j'envoie à moins 5 au carré, il va m'envoyer 25.
00:34:16 :Oui, je peux faire...Je sais comment je vais faire.On va...Alors...On va faire ça, on va la couper cette fonction.On va faire autrement.
00:34:30 :Un peu plus simple, si on veut.IégalEnfin, je me souviens plus comment on fait.IJe perds l'imosité, ça fait peur.I au carré, ok.
00:34:49 :Euh...Je vais faire ça parce que j'ai fait une bêtise, mais on va le compter.C'est très simple ce que je suis en train de faire.
00:35:12 :Ne le prenez pas en exemple.Parce que j'ai...Mais t'as pas défini les temps avant ?Ouais, j'ai oublié de définir avant, donc je fais comme ça, c'est sale, mais ça passe.
00:35:25 :Je sais plus comment on fait ça.Ouais, c'est...Tac, tac, tac.C'est la sécurité, je crois.Sinon, il n'y a pas à se casser la tête, il suffit juste de le mettre à la puissance 0.5.
00:35:52 :Oui, exactement, merci.I, hop, tac, tac.Les cours de maths sont un peu loin, hein.Ça va pas être si si.Ils datent d'il y a plus de 30 ans, donc...
00:36:10 :OK.Else.Tac, on va créer la liste.On y passera qu'une fois, mais c'est pas grave.List.Temps.Égal.Tac.Et du coup...List.Temps.
00:36:34 :Égal.Non, à peine.On aurait dû créer cette liste avant, ça aurait été plus simple.Tac.Rien que là, on s'aperçoit que la lambda, c'est beaucoup plus simple à utiliser.
00:36:51 :Oui.Bon, après, les IF, ils seraient pas...Ça restait sur list.temps à peine 0.5.Et après, on fait notre...Tac.Tac.Ouais, moi, je m'en doutais un petit peu.
00:37:13 :Allez, on va recommencer.Liste.Temps.Oh là, qu'est-ce qu'il me fait.Égal.Tac.Voilà.Donc là, comme ça, on va avoir la bonne version.For i, in.
00:37:31 :List.Absolue.Tac.i.Égal.Tac.2.OK.List.Temps.Tac.Tac.Tac.Tac.Tac.Oh, je fais des bêtises.Enfin bon.Allez, on va pas pousser le vice trop loin.
00:38:09 :Parce que là, je suis en train de m'embourber.Et puis, on va y passer 3 heures.Je pense que vous avez compris le but de la démonstration.
00:38:15 :C'est que vous voyez que tout de suite, sans la lambda, c'est...Sans le rang du pied et la lambda, c'est tout de suite plus compliqué.
00:38:21 :Donc voilà à quoi servent, en gros, les fonctions lambda.Ça va vous simplifier la vie sur beaucoup de choses.Ça va vous permettre,comme vous l'avez vu,des fois, vous simplifier un peu la vie sur celle des fonctions.
00:38:39 :Faire des opérations sans avoir besoin de recréer une fonction.Et créer aussi des méthodes simples.Sans être obligé de refaire toute une définition.Et vous avez même vu que, par exemple,sur la fonction,ça nous permet de manipuler, de créer un objet et de le manipuler.
00:38:57 :Même sans passer par l'init.Vous pourrez très bien imaginer...Tiens, je fais ma...Ma fonction...Une fonction avec...Comment ?Avec que des...C'est quoi ce bordel ?
00:39:19 :J'ai paumé le... Ah, il est là.On pourrait très bien imaginer, par exemple,qu'on fait une classe.Par exemple, une classe Message.Vous définissez différents types de messages.
00:39:37 :Et vous créez votre objet.Et à chaque fois que vous voulezafficher un message dans votre script,vous utilisez votre objetpour afficher le message correspondant.
00:39:47 :On pourrait imaginer ça aussi, par exemple,pour des logs.Pour faire des débugs,des infos, critique et call,et ainsi de suite.Donc vous voyez, la lambda, elle peut permettre beaucoup de choses.
00:39:59 :Et surtout,s'éditer des fois une définition un peu...Pas forcément complexe,mais surtout fastidieuse.Pour quelque chose de relativement simple.Je la rapprocherai, par exemple,de la dataclass.
00:40:15 :Je ne sais pas si vous étiez là pour la dataclass.Non, je ne suis pas là moi.Voilà, la dataclass,c'est aussi quelque chose qui va vous permettre de créerdes objets dontl'intérêt principal, c'est les attributs.
00:40:29 :D'accord ?Vous pouvez avoir quelques méthodes,mais ne vous embêtez pas à définir des attributstrès complexes.L'objectif, vraiment, de la dataclass,c'est vraiment de stocker de la donnée.
00:40:41 :Un exemple avec, de mémoire,un jeu de roule.Pour, par exemple,stocker des données d'un personnagepour un jeu de roule.La dataclass, c'est plussimple pour, dans ce cas-là, elle peut créerune classe un peu plus complexe,avec le définit, et tout ça.
00:40:59 :La lambda, ça vous rend exactement les mêmes servicesau niveau des fonctions, et comme vous l'avez vuau niveau des classes, ça peut vous rendreaussi le service pour des fonctions simples,des méthodes simples.
00:41:09 :Typiquement, vous pouvez très bien associerla dataclass et les lambdaspour faire un personnage avec,par exemple,vous pouvez créer une lambda pour son cri de guerre.
00:41:19 :Ou une lambda pour afficherson attaque.Vous voyez ?Pour l'affichage d'un message.Voilà, ça va vous simplifier grandement le code.Globalement, là où vous allezutiliser, c'est ce qu'on a vu ce soir,de l'affichagedes options de tri,soit directementdans une liste, comme on l'a fait au début,
00:41:43 :soit avec une quai pour unsortid,et c'est là que ça va s'arrêterprincipalement.Je ne vous dis pas qu'avec la lambda, vous ne pouvez absolument pasfaire autre chose, mais dès que ça va dépasserune instruction,vous passerezsur une fonction classique.
00:42:01 :Parce qu'après,c'est trop compliqué.Après,on pourrait imaginer dans une lambda un opérateurternaire, ce n'est pasgênant. Mais on reste surl'instruction.Voilà, voilà.
00:42:21 :Est-ce quevous avez des questions par rapport à tout ça ?Non, en fait moi,ça fait gagner non plus ces lignes de code,ça c'est la première chose qu'on voit,derrière vous.
00:42:35 :Ça évite surtout de perdre du temps sur desfonctions qui n'en méritent pas.Je veux bien qu'aujourd'hui, avecChunkGPT et autres,il y a beaucoup de code...
00:42:47 :Ce que je viens de dire n'est pas très juste,mais du code un peu poubelle.Ce n'est pas là-dessus qu'on attend un développeur,mais il faut quand même créer ce code.
00:42:59 :Entre ChunkGPTet le reste, il fait très bien le travail à ce niveau-là.Maintenant,c'est bien déjà que vous connaissiez ce quiexiste et les outilsauxquels vous pouvez recourir.
00:43:11 :Tout ce qui est ChunkGPT et autres,je peux vous dire, j'ai encore eu desexpériences,ça fait une semaine que je monteun PFSense pour un projet perso.
00:43:23 :J'ai reconnuun réseauoù je vous parle,mon PFSense est fonctionnel.Si j'avais laissé ChunkGPT,on serait encore en train de chercher.Et puis ça optimise le codeaussi de savoir faire ça.
00:43:41 :Pour réduire en deux lignes,du coup, au niveaudu temps d'exécution du code,ça réduit le temps aussi.Exactement. ChunkGPTne va pas optimiser le code,parce qu'il s'en fout.
00:43:55 :Lui, il ne voit pas l'idéequ'il tape son code,il va sortir un bazookapour tuer un moustique, puis ça ne le dérange pas.Oui, c'est l'aspect fonctionnel,c'est tout ce qui l'intéresse.
00:44:07 :Ça marche.Là où vousserez attendus, et puis fonctionnel pas toujours,là où vous serez attendusjustement au code,c'est d'être capable d'avoir ces connaissances-làcomme typiquementla fonction lambda,d'être capable d'optimiser le codeet de le rendreplus élégantet surtoutplus maintenable.
00:44:33 :Parce que, ce qu'il ne faut jamais oublierquand vous créez du code,là je vous renvoie versl'excellent livre Clean Code,il faut aussique votre code soit maintenable,parce que sinon vous créez de la dette technique.
00:44:49 :Je ne sais pas si vous avezconnaissance de cette notionde dette technique.En fait, c'est une notionqui dit que lorsque vous créez du code,chaque élément que vous créez,il faut penser que vous devrez faireune maintenance dessus.
00:45:05 :Fatalement.Aucune fonction que vous pourrez créer dans votre codesera totalement définitive.Si vous créez un projet,il est normalement amené à vivre,et vous allez fatalementajouter des fonctionnalités,optimiser certaines fonctionnalitéset ça aura nécessairementun impact sur d'autres fonctionnalités.
00:45:25 :Alors, on va êtretrès clair et honnête,une fonction def printqui fait message,qui fait uniquement ça,la probabilité qu'elle soit impactée par des évolutionsde code ou pardes mises à jour, elle reste faible.
00:45:41 :On ne va pas se mentir.Maintenant,peut-êtrequ'un jour, elle sera impactée.Si vous n'avez pas de notiond'optimisation et que vous créez50 fonctionslà où des lambdas suffiraient,vous créez de la dettetechnique et un jour,les dettes, il faut finir par les payer.
00:46:03 :Et là, vous arriverez à cemoment-là où votre code sera tellementénorme et tentaculaireque la seule solution que vous aurez pour ajouterde nouvelles fonctionnalités ou optimiser votre code,ce sera tout simplement de repartir de zéro.
00:46:15 :Et là,j'ai plombé l'ambiance.Non,c'est la réalité en fait.Après, tout ce qui estintelligence artificielle, c'est bienà utiliser quand on ne sait pas faire quelque chose,mais il faut lui demander de nous expliquerhistoire qu'on comprenne, qu'on puisse refaireet que s'il y a des choses,
00:46:39 :on peut se dire, à la place de ça,je mets une lambda,on peut réfléchir aussi nousObjectivement,ça, c'estl'utilisation idéale de l'intelligence artificielle.
00:46:51 :La réalité,c'est quequand, je ne sais pas siparmi vous, certains sont déjà dans le mondeprofessionnel au niveau du Devou au niveau de l'IT,mais la réalité,c'est quedemain, vous êtes dans le job,vous devez absolument faire quelque chosevous voulezscripter l'action parce que
00:47:17 :vous dites, cela, on s'en servira,vous ne passerez pas une journéeà faire votre script. Si vous ditesà un chat de GPT, tiens, je vais faire ça avec mon scriptpour que vous testiez le script, ça marche.
00:47:27 :Vous mettez le script de côté.Parce que vous n'avez pas forcément le temps d'étudieret de demander à un chat de GPT de bien vous expliquer.
00:47:35 :C'est pour ça qu'il faut que vous ayezabsolument toutes ces notions-là en tête avantque vous êtes dans le truc.Il y aura des notions que vous apprendrez au fur et à mesure.
00:47:43 :Mais,il faut que vous les ayez avantpour que vous soyez capable, justement, quand un chat de GPTva vous fonder des scripts comme ça,si vous devez revenir sur le script,je ne vous raconte pas la galère pour lui refairele prompt pour qu'il comprenne ce qu'il avait fait
00:47:57 :dans son premier script etqu'il vous fasse l'optimisationsupplémentaire qu'il a besoin.Et que vous soyez capable de vous rendre compte quand il y a une erreurparce que un chat de GPT ou autren'est pas infaillible.
00:48:11 :Même si, là, on a testé avec mon collègueClaudesur de la rédactionde documents,c'est particulièrement bluffant.Ceux qui ne connaissent pas encoreClaude, je vous invite à aller le tester.
00:48:25 :Les intégrations artificiellesqui m'ont plusservi, entre guillemets, c'est celles qui sontdirectement intégrées dansdansdans VS Code ou dans PyCharm.Ouais, alors après...
00:48:41 :Directement notre code,ça me sert quand j'ai des erreursque je n'arrive pas à trouver, pour direl'erreur vient de là.Moi, j'ai un GitHubcopilot, comme vous avez pu le voir,quand je tape dans VS Code.
00:48:55 :Ouais,c'est bien des fois, maisça part vite en sucette à mon goût.C'est bien pour, vraiment,s'il y a une erreur qu'on n'arrive pas à comprendre,pour essayer d'la comprendre.
00:49:07 :Et encore des fois, il nous ditça vient de là, mais non, ça vient pas du tout de là.Objectivement, GitHub Copilot,ça nous fait gagner du temps.
00:49:15 :Vous allez me dire que je sors un petit peu de bazookapour tirer un moustique.C'est que, quand je suis en train d'écriredu code, il me fait de l'autocomplétionet il est capable deme suggérerdes choses cohérentes.
00:49:31 :Oui, surtout quand onfait comme tu nous avais fait faire l'autre fois,écrire d'abordun peu tout le cahier des charges,un peu de ce qu'on veut.
00:49:41 :Voilà.Sur un format un peu texte,tout ce qu'on voulait,avant de vraiment rentrer dans le code.Et avec ça, après,ça nous guide bien.
00:49:55 :Maintenant, pour le debug,l'IA, je ne conseille pasnécessairement.Parce qu'en fait,j'ai essayé de faire le debugavec l'IA, je faiscomme tout le monde, il y a un bel outil,j'essaye de m'en servir, je vois ce qu'il peut m'apporter.
00:50:11 :Le debug avec l'IA,moi je me suis rendu compte qu'en fin de compte,si on fait du debugavec l'IA, c'est qu'on n'a pas compris ce que fait notrescript. Et si on n'a
00:50:23 :pas compris, c'est pour çaqu'on n'est pas capable de le debugger.En fait, si vous êtes parfaitementclair dans votre logique de script, vous allez être capable,dans votre script, comme on faisaitavant qu'il y ait l'IA,à certains points, de mettre un print,de voir le résultat qu'il sort,
00:50:39 :et voir sitelle variable a bien la valeurqu'elle devrait avoir à ce moment-là.Et c'est çaqui vous permettra vraiment de debugger votre scriptet de comprendre, je ne sais pas,par exemple,sur un programme que j'ai faitpar rapport à du forensic,du pass de disques,j'utilisais des
00:51:01 :images disques test, dans lesquelles jesavais parfaitement ce qu'il y avait.Si je disais d'aller voir quesi ma fonction devait aller voirdans tel dossier la liste des fichiers,je savais quelle liste de fichiersdevait sortir.
00:51:15 :À l'instant T où ma listede fichiers est dans une variable, j'imprimecette variable, et je voyais si ce qui me sortaitcorrespondait à ce qu'il devait être.
00:51:23 :Et là, ça me permettait de debugger,de me dire, ok, c'est là, c'est à ce endroit-làla logique qu'il y a un problème, en fait.
00:51:29 :Des fois, c'est un peu par facilitéqu'on se dit, on met l'erreur dans l'IAet il va nous la trouver.C'est une fausse idée.Objectivement,si vous faites ça tropsouvent, vous êtes en train de créerce que je vous parlais tout à l'heure, la fameuse dette technique.
00:51:45 :Un jour, vous la paierez.Alors attention,je ne vous dis pas de ne pas utiliserce que je vais dire,c'est pas ce que je dis.
00:51:55 :Mais faites-le avec parcimonie.Parce quevous vous rendez compte que vous êtes très vitecapable,très vite esclaves de celle-ci.Et que vous ne saurez plusrien faire sans elle.
00:52:15 :Et attention,quand je passe deux heures à chercherune petite virgule qui manqueou un truc comme ça,là, je vais poser la questionhistoire qu'ils recherchent.
00:52:27 :Mais des fois,même pour ces trucs-là,je m'arrête pendant un quart d'heure,j'arrive là-dessus, je dis, ah bah mince,là, je la vois l'erreur.Des fois, on n'arrive pas à la trouver.
00:52:39 :Mais attention,moi, je suis là quotidiennement.Dans ma boîte, on est en train de développerdes outilsqui sont basés sur l'IA.Je ne suis pas contre l'IA.
00:52:51 :Oui, après, c'est un outil qu'on doitsavoir se servir.Gardez-le bien comme outil. Relisez le...Il ne faut pas que ce soit l'IAqui nous gouverne, c'est nous qui doivons...
00:53:01 :Relisez le petit posteque Thibault a fait il n'y a pas longtempssur l'IA.Je pense que c'est une approche que j'aime bien aussi.L'IA, c'est un outil.
00:53:15 :Il ne faut pas hésiter à s'en servirparce qu'elle est là.Et que si vous n'allez pas vous en servir,vous serez forcément pénalisépar rapport à la concurrence.
00:53:25 :C'est une certitude.Un développeur qui sera servià l'IA et celui qui ne sait pas s'en servir,on sait très bien qui sera retenu.Maintenant,il ne faut pas que ça devienneune banking permanente.
Aucune occurrence trouvée pour « ».