Session du 06 mai 2025 à 21h00
Bases du Langage
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
Maîtriser *args et **kwargs en Python
Découvre comment utiliser *args pour créer des fonctions plus flexibles, capables de gérer un nombre variable d’arguments sans dupliquer du code.
00:00:00 :Et c'est parti.Alors, ce soir j'ai décidé de vous faire un petit rappel,après c'est généralement plutôt pas mal de revenir dessus de temps en temps,sur les args et les quarks.
00:00:19 :Donc je vais vous partager un VS Code.C'est un peu plus simple.Alors, les args et les quarks en Python,c'est assez souvent utilisé,parce qu'en fait ça va vous permettre de définir des variablesdont vous ne connaissez pas exactement à l'avance la valeur,et du moins éventuellement le nom qu'elle pourrait avoir,
00:01:17 :et de gérer un petit peu des fonctions,on va dire de manière plus souple que la fonction de base.Donc on va revenir déjà sur une fonction de base,on va par exemple faire une fonction d'addition,on va partir là-dessus.
00:01:37 :On va faire un truc assez basique.Donc on a une donnée A et une donnée B,et on va retourner la prise B.Donc juste là la solution de la fonction c'est très simple,on a défini qu'on mettait deux variables,et qu'on retournait l'addition des deux variables.
00:01:59 :Donc par exemple,si je fais un print d'addition avec 2 plus 3,on va rester sur ce que me propose mon copilote,que je lance, ça en renvoie 5,parce qu'elle n'a pas le grand mystère.
00:02:16 :Maintenant, la problématique que vous pouvez avoiravec ce genre de fonction,c'est que là, vous pouvez l'utiliserpour additionner uniquement deux chiffres.Mais admettons que vous voulez fairel'exercice de la calculatrice que vous voyez dans Python,si vous voulez faire une calculatrice très grandeet additionner 3, 4, 5 chiffres ensemble,
00:02:50 :si vous voulez aller jusqu'à 5,vous avez la possibilité de faire par exemple,c'est ajouter le nombre de variables,c'est-à-dire qu'on peut les additionner jusqu'à 5 chiffres,D, E, OK,et il va falloir donc rajouter A,plus C, plus D, plus E, d'accord ?
00:03:16 :Sauf que là, admettons que je veux faire une additionqu'avec 3 chiffres, alors mettons avec 4.Si je lance ça comme ça,totalement j'ai une erreur,puisque j'ai pour lui que 3 arguments,alors que ma fonction va être comme 5.
00:03:38 :Mais je veux faire mon addition qu'avec 2, 3, 4.Donc là, dans ce cadre-là, qu'est-ce qu'il faut que je fasse ?Pour que ma fonction ne râle pas,et encore un 0, OK ?
00:03:51 :Donc, ça fonctionne,globalement on n'a pas d'erreur de code,mais c'est quand même pas très pratique,parce que du coup on va se retrouverà devoir être obligé à chaque fois d'avoir forcément 5 arguments,alors qu'un coup ça se fera à besoin de 3,un coup de 2, un coup de 4, voilà.
00:04:14 :Donc pour ça, Python, qu'est-ce qu'il utilise ?Il va utiliser ce qu'on appelle les args.Alors, les args, ça va vous permettrede mettre un nombrede paramètres,je dirais quasi indéfinis, d'accord ?
00:04:32 :Mais vous allez pouvoir récupérer par la suite.Alors, voyons voir un petit peu comment ça fonctionne.Ici, on va mettre un args, OK ?Alors, pour utiliser un args,on va mettre une escouade, un splat.
00:04:53 :Alors, ce qui fait que là, ceci est un args,ce n'est pas le fait que je l'appelle args.Je pourrais l'appeler, je ne sais pas,quel inventif ce soit.
00:05:09 :Carotte, ça marcherait, pareil, d'accord ?Args, c'est juste unedénomination, on va dire,commune que tout le monde aura utilisée,parce qu'il utilisait le système des args.
00:05:24 :Il va utiliser args, comme ça, ça marche.Donc on va revenir à args.Et là, qu'est-ce qu'il va se passer ?On va déjà imprimer simplementnos args pour voir à quoi ça ressemble.
00:05:39 :Donc là, du coup, j'ai plus besoin de mon print.Je lance.Qu'est-ce que vous voyez comme petit élémentqui nous est retourné ?C'est un tuple, non ?
00:06:03 :Voilà, un tuple, tout bêtement.Donc, en fait, on se retrouve avec un littéral.Donc, qu'est-ce qu'on va pouvoir faire ?On va pouvoir, par exemple, créerune solution qu'on va appeler résulteurqui est égale à zéro.
00:06:23 :Et pour chaque argument dans args,on va dire résulteurà plus égale args.Et on va retourner le résultat.Et là, pour le compte,si je prends mon addition,si je fais un print de mon addition,et que ce coup-ci, je ne mets que mes trois éléments,je lance.
00:07:06 :Effectivement, ça me retourne bien.Maintenant, je vais mettre,allez, on va remettre un élément supplémentaire.Je lance.Pas de soucis, ça me fait bien le travail.
00:07:19 :Et puis, je peux mettre quasimentautant d'éléments que je veux.Voilà.Je lance.Et ça me fait bien l'addition, sans aucune difficulté.Donc là, vous voyez l'intérêt des args,c'est que vous pouvez passerune série d'arguments à votre fonctionsans connaître à l'avance quand vous allezdéfinir votre fonction le nombre d'arguments qu'il y aura.
00:07:49 :Vous prenez en compte le fait dans votre fonctionqu'il peut y avoir une possibilitéqu'il y ait un, deux, trois, plusieurs éléments.Donc là, ça a été, par exemple, comme je l'ai fait avec une boucle,il y a plein d'autres systèmes sur lesquels on peut exploiter le problème.
00:08:03 :Et donc, vous allez pouvoir utilisertous les arguments que vous passez dans votre fonction.Ce qu'il faut savoir, c'est que vous n'êtes pas obligésque tous les arguments que vous mettez dans votre fonctionsoient exactement du même type.
00:08:21 :Alors là, je vais vous le montrer en faisant simplement un prime,parce que je n'ai pas envie de dessiner une fonction un peu complexe.On va faire un prime arg, voilà.
00:08:32 :Et là, par exemple, je vais mettre deux.Bonjour.C'est un exemple qui me propose pas mal.Un nombre flottant, une liste.Et là, si je relance...
00:08:52 :Je ne vais pas faire un print, parce que ça va bugger,il n'y a pas de router, rien.Je vais juste exécuter ma fonction.Je lance.
00:09:02 :Et là, il traite bien tous mes arguments indifféremment.Donc, le fait qu'on utilise les argsne nécessite pas que tous les argumentssoient exactement du même type.
00:09:17 :Du même type.Donc, ça veut dire que vous pouvez passerdes arguments de texte, des listes, des tuples, des dictionnaires,tout ce qu'on peut imaginer.
00:09:28 :Un autre cas pratique que vous pourriez avoiravec les args.Et...Comment je... Qu'est-ce que je trouve ?Ouais. Voilà.Alors, je pourrais mettre par exempleif isInstanceargs.str
00:10:00 :Vous connaissez isInstance ?Parce que ça, je me lance pas dedans.Je ne sais pas si tout le monde a eu le temps de voir ça.
00:10:06 :Quoi ? Si on connaît quoi, tu dis ?IsInstance.Ah oui, OK.C'est bon pour tout le monde ?OK.Donc là, si je fais ça.
00:10:25 :Voilà.Voilà.Est-ce...Voilà.Une fausse. Voilà.Donc là, c'est basique.J'exécute.Qu'est-ce qu'il se passe ?Il me dit bien qu'avec le deuxième argument,il y a une chaîne de caractères.
00:10:41 :Donc derrière,vous pouvez manipulertous les arguments comme vous voulez.Alors,quand on commence à utiliser les args,dans certains cas, ça nécessite un petit peu plusde conceptualisation etde réflexion dans la définition de sa fonction.
00:10:57 :Mais ça permetde mettre des arguments supplémentairesdont on ne sait pas à l'avancequel va être le nombre de ces arguments.Et de les traiter en fonction.
00:11:10 :Autre exemple qu'on pourrait mettre...Voilà.On va faire ça.Au lieu de boucler sur ma liste de args,par exemple,puisqu'on a affaire à un itérable,on peut utilisertout ce qu'on pourrait utiliserbasiquement avec un itérable.
00:11:32 :Si je metsif...Si au revoir, elle n'entre pas,elle est prise au revoir.Voilà.Simplement.Là, si je le lance,comme vous voyez,le mot au revoir n'est pas dans ma liste d'arguments.
00:11:56 :Du coup,on a un critérium.Maintenant, si je remplace bonjourpar au revoir,je le lance.Boum.Il m'écrit bien au revoir.Donc derrière,vous pouvez vraiment manipuler ces argscomme vous le voulez.
00:12:14 :Donc ça peut vous permettre que,par exemple,vous traitez différents sets de donnéeset vous allez passer ces donnéessous forme d'arguments à votre fonctionet vous verrez que votre fonction,elle réagisse que si cette donnée est valable,est présente.
00:12:35 :D'accord ?Un exemple que vous utilisez assez classiquementqui va travailler sur ce système-là,c'est la compréhension de liste.D'accord ?Donc vous pourriez imaginer faire des systèmeséquivalents à la compréhension de liste,mais avec vos propres paramètres,vos propres règles de sélectionet votre propre système de rendu
00:12:59 :puisque vous définissez tout dans votre fonction.Ok ?Ok.Pour ce qui est des args,est-ce que ça paraît clair plus ou moins à tout le monde ?
00:13:11 :Oui, pour moi c'est clair, oui.Donc maintenant,on a les args, c'est bien,mais on a leur copainqui est souvent cité avec,qu'on appelle les cowards ou les quards.
00:13:32 :On va les noter comme ça.Dans une fonction.Voilà.La différence, est-ce que vous savez la différenceentre les args et les quards ?Les keywords sont nommés, non ?
00:13:55 :Voilà.Les args, ce sont des paramètresoù on passe juste la valeur.Les quards,ils vont être accompagnés d'un nom.Donc,on va voir comment ça se présente.
00:14:11 :On va mettre un petit printquards.Voilà.Et je vais vous montrer un petit peucomment on les passe.On va prendre cet exemplecet exemple-là, c'est très bien.
00:14:33 :On va lancer.Et regardez sous quel camp se présententles quards.Ça nous renvoie à dictionnaire.Est-ce qu'il y en a parmi vousqui jouent un petit peu avec Django ?
00:14:55 :Non, moi je ne joue pas Django.Donc par exemple,si vous avez utilisé avec Pythonle module request,typiquement, lorsque vous envoyez une requête,une request à une fonction web,vous allez jouer avec des quards.
00:15:13 :Vous allez regarder si,dans les éléments de la requête,il y a une requête qui porte,qui a pour un pied tellement grandque ce qu'il y a pour un pied tellement.
00:15:25 :Donc là, ce qu'on va pouvoir faire,par exemple,quards.quards.getgetasinonjuste un get.Ok.Et on va l'afficher.Je lance.Il m'affiche bien la valeur de a.
00:16:11 :Maintenant, si je fais un quards.grc,il m'affiche non,puisqu'il n'y a pas trop d'essais,donc du coup,il m'affiche non.Donc,le truc, c'est que vous allez avoir les varsqui vont être une liste de valeurs,et les quards qui vont être un dictionnaire.
00:16:32 :Et l'avantage de ces deux élémentsque vous allez pouvoir mettre dans les fonctions,c'est que vous allez pouvoir, par exemple,créer ce genre de fonction.
00:16:42 :Ok.Comment...Ouais, voilà.Mais il n'a pas tenu...Excuse-moi, il n'a pas tenu compte des 1, 2, 3qu'il y avait avant, là ?Parce qu'en fait, les 1, 2, 3,ils sont mis dans les aves.
00:16:58 :Parce que comme c'est des valeursnon nommées,d'accord ?C'est juste des valeurs.Ouais.Je vais te les mettre comme ça,comme ça, ça va être plus clairet tu vas les voir.
00:17:10 :Alors.Arves.Et quards.Ouais.Je lance.Les arves, il les a automatiquement misdans le tupleavec les valeurs dans l'ordre dans lequel on les a mis.
00:17:29 :D'accord, ouais.Et les quards, il les a mis dans un dictionnaire.Ok.Automatiquement.Etce que je vous ai montré tout à l'heure,on va le faire.
00:17:42 :Comme ça, vous allez voir quele nom est vraimentpurement à ce métrier.Voilà.Voilà.Je lance.Ça lui pose pas de problème.Donc, vous pouveznommer arves et quardscomme vous voulez.
00:18:12 :Maintenant,tiens qui arrive.Là, je reviens.Vous pouvez donc les nommer exactementcomme vous voulez.Il n'y a pas d'interdit là-dessus.Maintenant, je vous déconseille fortementde les appeler autrement que arves et quardsparce quedéjà, vous risquez de vous y perdrequand vous allez les utiliser.
00:18:41 :Et puis,en plus,en termes de maintenance,après, pour vous rappeler que c'est les arves et les quards,voilà, ok,il y a l'histoire des petites étoiles,mais vous risquez plus de vous mélanger les pinceauxsurtout dans le corps de la fonctionquede retrouver vraiment à quoi vous faites référence.
00:19:00 :Parce que là, on a une fonction sur deux lignes.C'est pas dur d'aller voirles arguments de la fonction,de voir que devant carotte sans S,il y a une étoile donc c'est un arveet que devant carotte avec S,il y a deux étoiles donc c'est un quards.
00:19:18 :Là, ça va.On peut s'y retrouver.Maintenant, imaginez que votre fonctiona fait une centaine de lignes.Ça risque d'être compliqué à suivre.D'accord ?
00:19:30 :Donc ça, je vous le montreparce que c'est bien de savoirque c'est pas obligatoirede vous appeler arcs et quards.Peut-être que dans certains cas,au cours de vos différentes aventuresde codeurs, ça vous arrangerade les renommer différemment.
00:19:46 :Maintenant, je vous le déconseille.C'est plus simplepour la maintenance du code.Et en plus,quand quelqu'un d'autre doit lire votre code,il sait tout de suiteque vous avez utilisé des arcs et des quards.
00:19:59 :Et là, tout de suite, ça va lui paraître.Ok ?Euh...Qu'est-ce qu'on pourrait...Euh...Il y a un ordre, je crois.Oui.D'abord, alors...
00:20:21 :En fait,c'est un ordrequi n'est pas typiquement imposépar les arcs et les quards.D'accord ?C'est-à-dire qu'en Python,quoi qu'il se passe...Alors, on va créer une autre fonction icipour que je vous montre.
00:20:39 :Vous savez qu'en Python,on peut donner des valeurs par défautà des arguments d'une fonction.Par exemple,je peux faire un verbe aller sous station,même si le thème n'aura pas de lien,c'est pas grave.
00:20:58 :Je peux avoir ma variable A,ma variable B,et, par exemple, ma variable Cqui est égale à 0.Ok ?Donc ça, je ne sais pas si vous avez déjà utilisé ça,ça marche très bien.
00:21:13 :On peut faire un return de A-B-C,on peut faire ce qu'on veut derrière,ça ne pose pas de problème.Par contre,si je veux faire ça,alors, je vais laisser le return,comme ça, ça va nous...
00:21:25 :Hop !Et que je lance...Là, il y a une erreur.Parce qu'en fait,Python nous imposede mettre en premiertoutes les valeurs simples.
00:21:41 :J'appellerais les valeurs simples.C'est-à-dire, le A, le B,le B ici, par exemple,n'a pas de valeur définie.Hop !Je suis obligé de le mettre en premier.
00:21:55 :Ok ?Et de passer mon A, que j'ai mis égale à 0, en deuxième.C'est-à-dire qu'à chaque fois que vous allez mettre une valeuravec une valeur par défaut,tous ces argumentsdoivent forcément se trouverà la fin de la liste des arguments de la fonction.
00:22:11 :Ok ?Donc du coup, pour les args,il en va de même quand vous allez dans votre fonction.Parce que là, par exemple,si je faisais ça,normalement,ça va lui poser un problème.
00:22:30 :Voilà.Vous avez déjà vu le petit truc qui vient.Hop !Là, ça lui pose un petit problèmeparce que j'ai mis le A égal à 1avant le 3.
00:22:48 :Donc, à chaque fois que vous allez vous remettreun argument nommé avec une valeuren tant que paramètre ou argumentd'une fonction, il faut toujoursque ça soit placé à la fin.
00:22:59 :D'accord.Mais là, c'est le contraire.Quand on met args, virgule k...kwarg...C'est-à-dire ?Là, les args, c'est les arguments nommés.Les kwargs, c'est ceux nommés.
00:23:16 :Ah oui, ok.Par contre, à ce niveau-là,j'ai un doute, parce que j'ai jamais fait dans ce sens-là,parce que c'est vrai qu'on a tendanceà forcément mettre args, kwargs.
00:23:26 :On va vérifier, mais je pense que dans ce sens-là,par contre, ça ne pose pas de problème.Si, tu vois,il ne peut pas les prendre parce qu'il reconnaît déjàque args, ça va être des arguments nomméset que le paramètreà une étoile, j'ai l'explication,ne peut pas suivre le paramètre
00:23:42 :à deux étoiles.Ouais, d'accord.D'accord.Alors, hop !On va y mettre ça normalement.Donc voilà, vous êtes obligés vraiment...Vous êtes obligés de respecter ce rapport.
00:23:58 :D'abord les args, ensuite les kwargs.J'avouerais que je découvre un petit truc,parce que l'histoire de l'ordre des args et des kwargs,je ne me suis jamais posé la question,parce qu'on nous les présente toujours dans ce sens-là.
00:24:08 :Maintenant, je sais pourquoi.Et pareil, vos arguments,les paramètres de fonction, il faut toujoursque ce soit d'abordles non-nommés et aprèsles nommés ou ceux,on va dire, avec une valeurauquel vous précisez la valeur.
00:24:24 :Le nom de la variable et la valeur.Ok ?Excuse-moi,si t'avais marqué def additiona, virgule b, virguleétoile arg,étoile, étoile, kwarg,qu'est-ce que ça aurait donné ?
00:24:44 :J'aurais voulu...Alors, mettons,je mets a, virgule b,virgule b,virgule, kwarg.Qu'est-ce que ça fait, ça ?Regarde.Alors, est-ce que je...Voilà. Comme il y a
00:25:08 :plusieurs noms, là, ça ne marche pas.Mais par contre,parce qu'en fait, là, la valeur a...Ah oui, oui.Par contre...Oui, c'est une autre chose, oui.
00:25:20 :Si je mets c, d,là,je sais exactement ce qu'il va se passer.On peut le faire comme ça,prendre c, hop,premier.Le 1, il me le metpour la valeur c, le 2, il me le metpour la valeur d.
00:25:44 :Le 3, il me le met dans un tuple.Le 4, il me le met dans un tuple, quand même.Ah oui, d'accord.Et le a et le b, il me le met dans mon dictionnaire.
00:25:52 :Donc, on peut très bien mixerdes args, des kwargs,des variables,c'est pas un souci.D'abord, les variables,donc c, d,les args, et les kwargs.
00:26:08 :OK.Et là, normalement, si je fais ça,je devrais avoir un warning.Hop,si j'enlève la parenthèse,il y a le warning.Qu'est-ce qu'il me fait, là ?
00:26:28 :Voilà.Là, il comprend pas,parce que je pourrais le faire,techniquement, mais à ce moment-là,il pourrait que je marque,comme ça, mettonsc égale 4,1,d égale 5,par exemple,et là, ça marche.
00:27:00 :Mais il faut que je les désigne.Je peux pas juste mettre5 et 4,parce que là,tant qu'il va trouverdes valeurs non désignéespar un nombre variable,tout le temps qu'il va en trouver,il va les rajouter dans le tuple de args.
00:27:20 :Donc si je voulais faire dans ce sens-là,ça veut dire qu'il faut que je redésigne mon c et mon d,ici, comme je l'ai fait tout à l'heure.
00:27:28 :Donc par exemple, on va prendre5, c égale,et d égale,pour qu'il sacheoù mettre quoi.Mais comme on l'a vu à l'instant, à l'inverse,si je fais ça,hop,là, ça lui pose aucun problème,je lance,il met bien le 1 et le 2 dans c et d,
00:28:00 :et tout le reste dans le args,et a et b dans le compte.Et là,même chose, c'est pas parce que j'ai misun ou plusieurs imprimants devant,si je fais ça,hop,que je vais faire,on va éviter,6, hop,f égale7, allez, que je lance,pas de problème,
00:28:28 :il me fait bien un tri,il me prend bien 1 et 2 pour la valeur c et d,il me met le reste dans l'args,il me met les variables nomméesdans le dictionnaire du quoi,il n'y a aucun souci.
00:28:40 :D'accord ?Ah, ok.Est-ce que c'est bon pour vous ?Est-ce que ça vous semble un peu plus clair,les args et les quoi ?
00:28:56 :Oui.Donc il n'y a que ça à retenir dessus, en fait.Voilà, principalement.Après,les args et les quoi,globalement dans l'escrit Python,ça ne va pas forcéments'utiliserde manière très régulière.
00:29:30 :Parce quedans un script Python, généralement,on va définir des fonctions, donc on définitune mécanique interne, on va définiraussi l'équilibre d'utilisationdes différentes fonctionsqu'on va utiliser,et donc du coup,on va paramétrerles arguments dont on a besoin.
00:29:50 :Une partieoù c'est très souvent utilisé, les args et les quoi,c'est avec,par exemple,des lignes de commande.Si, par exemple, on veutlancer le script en ligne de commande et passerdes paramètres,par exemple,je vais vous montrer quelque chose qui n'a rien à voir avec Python,
00:30:12 :mais c'est pour vous donner un exemple.Si je fais un ls-al,ça m'affiche la listedes fichiers,aussi bien les fichiers,A c'est pour les fichiers cachés et L c'est sous forme de liste.
00:30:26 :D'accord ?Et bien ça,typiquement en Python,ls ça serait ma fonction addition,et mettonsmes args,ça serait A et L.Et je dirais,je coderai ça dans ma fonction,sous cette forme là.
00:30:46 :Alors,if a in argsappaffichefichiercaché,par exemple,etj'auraiifif Lin argsJe vous simplifie,parce qu'après il faut passer par le scissoir gris et tout ça,mais là je vous simplifie un peu le trucpour que vous compreniez l'idée.
00:31:26 :Affichefichierformeliste. D'accord ?Donc,le concept des args et des formes,c'est que vous allez pouvoir,notamment avec vos scripts Python en ligne de commande,permettre un certain nombre d'arguments,et passer ces argumentsà votre script.
00:31:56 :Donc en Python, ça serait duré comme ça.Par exemple,Python3Par exemple,Python 3mentorat.pyEt puis, je passerais un argumentpar exemple,et ainsi de suite.
00:32:24 :Et là, je l'ai récupéré avec mon scissoir gris,et je pourrais passer avec une fonction argspour utiliserces arguments qui ont été passés.Ce qui veut dire que là,je pourrais autoriser dans l'exécution de mon scriptde passer divers arguments.
00:32:38 :Voilà.Par exemple comme ça.Bon, c'est pas du tout correct ce que je vous écris,mais c'est pour vous expliquer l'idée globale.De passer différents arguments comme çaà côté de mon script,et de lancer mon script avec certains arguments.
00:32:54 :Et là, je pourrais les récupéreravec les args et les formes, parce queje préférerais un système comme ça,parce que je ne sais pas à l'avance que l'utilisateurva sélectionner comme type d'argument.
00:33:04 :Je vais revenir sur mon ls,si je fais un ls, je peux faire justeun ls tout simple, et passer aucun argument.Je peux aussi dire,je veux simplement aussi que tu m'affichesles fichiers cachés.
00:33:18 :Ou simplement que tu m'affichesles fichiers comme les listes.Mais ça, je ne peux pas, quand je vais concevoirmon script, déterminer à l'avancequelles sont les options que l'utilisateurva retenir.
00:33:30 :Donc c'est là qu'on va utiliser des systèmesd'args et de formespour pouvoir gérer les différents caset les différents types d'options qu'on va autoriseret commentle script va se comporter en fonction des optionsqui ont été retenues.
00:33:44 :Est-ce queça vous paraît clair ?Bon, impeccable.Si c'estclair pour vous,ce que je vais vous proposer aussi,on va faire ça.Salut JC.
00:34:08 :Bonsoir Stéphane.Bonsoir tout le monde.Pour terminer, je vais vous refaire çaun petit peu en plus.Je vais faire un petit rappelsur les fonctions lambda.
00:34:24 :Est-ce que vous connaissez plus ou moins ou pas ?Oui, on connaît, mais instinctivementj'ai du mal à mémoriserla syntaxe.Alors, la syntaxe sur les lambdaelle estassez simple.
00:34:42 :En fait, pour définir notre fonction lambdaon écrit lambda.Ensuite,je vais vous le marquer comme ça.Ce qu'on passe d'abord,je vais le mettre entre parenthèses,c'est les arguments.
00:34:56 :D'accord ?On met deux pointsaprès, on va mettrece qu'on créeavec les arguments.Voilà.On va commenter ça.Et on va passer sur un exemple concret.
00:35:18 :Je vais faire une lambda.D'accord ?Je vais passer déjà mes arguments.Alors, je vais mettons dire A,B, on va rester sur notre petitcôté, hop, et je vaisdire A plus B.
00:35:34 :On a fait l'addition entre A et B.Je vais afficher ça parce quesinon, soit je le mets en imprime,soit je retourne dans une valeur.
00:35:42 :Je lance.Il m'affiche la fonctionlambda seulement.Alors, hop, je vais peut-être faireune petite erreur.Ah oui.C'est des parenthèses, non ?Non, il faut que je le mette dans une variable.
00:35:58 :Je pense.Voilà.Je sais pourquoi.Donc là, je le mets dans une variable.Et je vais faire mon printrésultat de 3.Je lance, ça m'affiche bien 5.
00:36:14 :En fait, je ne lançais pas la fonction, c'est pour ça.Ça me met un def,c'est un bordel.Il est gentil,mais il se mêle un petit peude ce qu'il regarde ou pas.
00:36:28 :Égale lambdaABA plus B.Voilà.Je lance.Ça m'affiche bien 5.Il me remet un def.Alors là, celle-là,celle-là, je ne comprends pas.
00:36:54 :Pas bon.Vous voyez l'idée. En fait, l'idée avec une lambda,c'est qu'ici, vous passez les paramètres.Et ici, ce qu'on fait des paramètres.D'accord ?
00:37:04 :Et il y a toujours les deux points.Pour s'en souvenir, c'est assez simple.Si je voulais faire une fonctionque j'appelle,devinez,lambda.Comme de par hasard.
00:37:20 :Eh bien,on est tous d'accord.Je fais ça.Tac.Et return de A plus B.OK ?Je pense que tout le monde est d'accord sur le principe.
00:37:38 :Et là, tout le monde sait faire ça.C'est clair pour tout le monde.Eh bien, tout simplement,si vous observez bien,c'est le schéma qu'on reproduit ici.
00:37:48 :Je vais remettre ça en parallèlepour que vous voyez bien.Ici, j'ai bien ma lambda.J'ai bien mes paramètres.Les deux points qui définissent ma fonction.
00:38:00 :Etce qu'il se passeavec mes arguments,ce que je fais avec mes arguments.D'accord ?Mais si tu fais Aau-dessus de résultat,si tu fais A égale 2et B égale 3,à mon avis, Copilot, il ne fera pasla déclaration de fonction.
00:38:22 :Parce qu'à mon avis,il ne comprend pasA et B ne sont pas affectés.Du coup, il force le...Je pense que c'est ça.L'intelligence artificielle reste artificielle.
00:38:34 :Voilà, c'est ça.C'est-à-dire qu'il force ce que tu ne veux pas faire.L'intelligence artificiellereste artificielle. Ce n'est pas de l'intelligence.Donc, voilà pour les lambdas.
00:38:44 :En fait, c'est relativement simple.Après,on va utiliser les lambdaspour des fonctions assez simpleset qu'on va pouvoir mettreun peu partoutdans notre codesans avoir besoinde définir une fonction spécifiquementrien que pour ça.
00:39:04 :Là, on est sur une addition,donc rien de bien complexe.Par exemple,si vous vouliez faire,je ne sais pas moi,vérifier queune valeurqui va être passéesera supérieure à 2,plutôt que de créer une fonctionpour ça, puis de renvoyer le résultatde la fonction à une autre fonction
00:39:30 :qui va vérifier dans ce paramètresi on a bien un truc ou un fausse,vous faites une lambda et ça va aussi bien.C'est vraiment simple.
00:39:38 :Tu ferais ça comment, là ?Tu mettrais...Je vais faire un...On va suivre le conseil de JC pour que...Oui, je suis en train de le taper.
00:39:50 :Je vais l'avoir le coeur net.Par exemple,si je fais...Comment je pourrais faire ?Voilà.Iflambdax de pointxsupérieure à 2x égale un peu, peu importe.
00:40:26 :Ce n'est pas le plus...Le plus d'intérêt.Là, si je lance ma fonction,pourquoi...Lambda, ça ?Oui, mais j'ai fait une bêtise.Ah oui.
00:40:48 :Comment...Je crois que c'est comme ça que je fais ça.Je suis en train de m'enfermer, là.Voilà.Voilà.Résultat...On va faire comme ça.
00:41:22 :Voilà.Et si je fais un...If...Résultat x,ça devrait...Voilà.Mon x reste bien égal à zéro.Il m'a encore mis un def.Il m'embête, hein.
00:41:50 :Le fonctionnement est idem,on va rester comme ça.Il faut que je trouve un moyende désactiver copaillot pour les mentoratsparce que ça me fatigue plus que tout le monde.
00:42:00 :Hop.Là, il me renvoie bien un.Donc, en fait, il a utilisé la fonction...Une fonction, bah oui, je ne sais pas quoi.Est-ce que je peux trouver ?
00:42:16 :Voilà.Ah non, ça n'a pas fait.Bon, c'est tout.On va rester comme ça.Quand on fait une lambda,on a oublié de l'utiliser tout de suite,d'assigner égal ?
00:42:30 :Voilà.Parce que là, tu es obligé d'écrirequelque chose égale lambda,mais tu ne peux pas écrire lambda tout seul,je pense.Non, non, il faut l'utiliser tout de suite.
00:42:42 :Donc, il faut le mettre dans une variable.Oui, voilà, c'est ça, il faut le mettre dans une variabledès la définition, quoi.Voilà, exactement.Mais donc, plutôt que d'aller écrire une fonctionquelque part, de définir une fonction,à la place, on fait une lambda, c'est une fonction sans nom.
00:42:58 :Je crois qu'il y a un concept similairedans javascript,qui s'appelleles fonctions fléchées.C'est un système un peu similaire.Donc, en fait,l'idée, c'est que vous avez besoin d'une petite fonctionpour gérer une problématique.
00:43:16 :Bon, là, on est sur des choses très très simples,on peut aller un peu plus loin avec les lambdas.Plutôt que d'écrire une fonction exprès,puis de l'appeler,alors que vous avez fait utilisercette fonction-là une seule foisdans votre script, vous n'en aurez plus besoinaprès, et bien,
00:43:32 :du coup, vous faitesune lambda à la place.Voilà.Après, au niveau de la syntaxe, c'est ça,c'est lambda,les arguments, donc sans les parenthèses,et ce qu'on fait des arguments.
00:43:50 :Voilà.Oui, mais,excuse-moi, mais si je reprendsce qui est indiqué dans le truc de docstring,de ce qu'il ne faut pas faire,déconseillé par la PEP8,il ne nous dit pasok, square,bon, dans une variable,égale lambda, x2,x puissance 2.
00:44:20 :En fait, c'est...Alors, dans ce cas-là,les références...Attention, ne pas utiliserde fonctions anonymessi vous les assignez à un nom.Ça ne sert à rien.
00:44:36 :Ça ne sert à rien,mais en fait, lambda, tu peux les utiliserde ta boucle, de ta décale d'utilisation,mais après, bon, ça va un peu plus loin.
00:44:44 :Là, ce que je voulais vous remontrer,c'était surtout la syntaxe.C'est vrai que la syntaxe,la syntaxe, elle est un peu...un peu particulière,et je voulais vous montrer justement le parallèleentre la syntaxe d'une fonction,la syntaxe d'une lambda,et vous montrer que ça paraît toujours un petit peu
Aucune occurrence trouvée pour « ».