Session du 13 février 2025 à 21h00
TOSA & Certifications
Deviens membre Premium magic_button
Cette session de mentorat est réservée aux membres Premium. Rejoignez-nous pour accéder à toutes les rediffusions des sessions de mentorat !
Premium
- check +100h de formations
- check +180 exercices de code
- check +100h de mentorats en rediffusion
- check 20 projets
- check Mentorats groupés hebdomadaires
- check Support individuel avec nos mentors
Session de mentorat TOSA
Session de mentorat TOSA, nous allons revenir sur la portée des variables.
00:00:00 :Il y a un mentorat qui a été fait, même peut-être bien par toi.Je ne suis pas certain qu'il sorte en fait. Je vais voir ça. Après c'est un détail, vas-y, fais ton dérivé.
00:00:40 :Non, t'inquiète, je vais regarder. Je ne sais pas, il y a aussi Arcel qui a posé une question avant de commencer,qui disait que lui développait avec Python, c'était 3.11, c'est ça Arcel ? Oui. Et sur Python Anywhere,
00:00:58 :je ne sais pas si on a compte de l'utiliser, sur Python Anywhere, en production, en fait,si vous n'avez pas le choix, c'est maximum Python 3.10. Et la question c'était, est-ce que ça peut
00:01:08 :poser problème ? Moi, perso, je développe en 3.11, entre 1.12 et sur Anywhere, j'avoue,je suis en 3.10, alors je prends des risques, mais je n'ai jamais eu de soucis. Voilà, c'était juste pour le petit...
00:01:20 :Alors, s'il y en a un, faire attention. Je ne sais plus où j'ai eu le cas, je vais partager mon écran,de toute façon, je vais commencer. Interface, tac. Hop là, je retire un peu l'écran. Du coup, en ce moment-là,
00:01:39 :si ça peut être intéressant, on va revoir la portée des variables, quand même. Ça va faire un peuredondance, peut-être avec ce qu'on a déjà vu, mais au moins, tout le monde est là, on va le faireen live. Si ça vous va, on prend la portée des variables. Si jamais, vous préférez qu'on voit des
00:01:53 :exo-typtosas, je peux passer rapidement sur la portée des variables et on part sur le typtosa,c'est comme vous voulez. Vous me dites, vous préférez quoi, du coup ? Moi, je révise la portée des
00:02:05 :variables, alors ça me va. Ok, alors juste pour ceux qui utilisent Python 3.12 et en production,j'utilise Python 3.10, une fois que j'ai eu un problème. Donc là, je fais Python 3.12 et je ne sais pas,
00:02:23 :vous pouvez faire par exemple, mais ça c'est un coup à la con que j'ai eu, ça grossit un peu. Ça va làoù je grossis un peu ? C'est bon là ? Pour moi, c'est bon. Oui, c'est bien. Il y a un truc avec les
00:02:44 :s-strings, je ne sais plus, je teste, il faut que je retrouve. Voilà. Là, j'ai mis, je ne sais pas,si je fais un truc comme ça. Non, je ne sais plus, il y avait un truc avec Python 3.12 où je m'étais
00:02:57 :fait avoir. Je ne sais plus si c'est Python 3.12, on peut mettre dans une s-string, double guillemets,inter-double guillemets, il y avait un truc dans le genre. Ah oui, c'est quelque chose. Ouais,
00:03:10 :ouais, ouais. Sans échapper en fait, tu veux dire. Je ne sais plus, alors attends, je regarde si jepeux compter. Si ça appartient du 12, ce n'est pas 13, c'est 12. Je trouve que c'est 12, parce que je
00:03:28 :m'étais fait avoir moi justement. Il faut que je retrouve quelque chose, je ne sais plus, je ne saisplus comment j'avais fait. Je ne sais plus, je ne sais plus, je ne trouve plus. Il faudrait que
00:03:50 :je retrouve le truc, c'est pas en double guillemets. Je crois que c'est le fait de ne pas avoir besoind'échapper, il me semble que c'est ça. Ouais, mais là, il me semble que tu pouvais faire un truc
00:04:02 :comme ça, mais avoir utilisé double guillemets, il y avait un truc assez bizarre à faire. Attends,si j'en sécrive le script là, il fait quoi ? Ça passe. Attends, si je print ma phrase, normalement
00:04:17 :ça passe pas, ça me paraît bizarre. Je ne sais plus la subtilité du truc qu'il y avait eu. Là,j'ai un double guillemets, ok, c'est génial, mais ça ne m'apporte pas... Non, je ne sais plus. Quel
00:04:34 :bug j'avais eu ? J'en avais parlé sur Twitter, parce que c'était un peu chiant, un truc qu'onpouvait faire en 3.12, et en fait, arrivé sur mes déclenchements de tests avec GitHub Action,
00:04:43 :lui partait en 3.11, et en fait, du coup, ça ne passait pas, je ne comprenais pas, et en fait,il y a un truc qui n'allait pas avec mes guillemets, mais je ne sais plus quoi exactement. Un truc que
00:04:51 :je ne fais jamais en plus, parce que c'est un coup à s'embrouiller, mais du coup, c'est pour direque quand vous changez de version comme ça, ça peut être compliqué des fois. Par rapport à ce
00:05:02 :que disait Arsene, moi j'avais eu une petite galère par rapport à ça, mais sinon, en général,je développe en 3.11, 3.12, et en 3.10, ça passe quoi. Je rechercherai, je ne sais plus ce que
00:05:15 :c'était. Un truc que je ne fais jamais en plus. Du coup, sur la portée des variables. Alors,on trouvera ça après. C'est une personne qui a commencé le parcours, qui a fait ça, et justement,
00:05:30 :je vais montrer un truc par rapport aux portées des variables, on verra vite à la fin. Pour toutle monde, est-ce que vous êtes ok que si on fait quelque chose comme ça. Je vais reprendre les
00:05:41 :mêmes outils que j'avais la dernière fois. Ici, si j'ai une fonction qui print x, si je fais xégal 5 ici, et que je print f1, là il n'y a pas de problème, j'affiche bien 5, c'est vraimentma variable qui est dans l'espace global, qui est accessible dans l'espace local. Jusque là,
00:06:14 :ça va. Normalement, c'est bon. Maintenant, si je fais autre chose, si je fais un truc genre,donc là on va laisser mon 5 ici, je vais redéfinir la variable ici. Je vais faire ça,
00:06:32 :ça sera plus parlant. Je crois que j'ai dû faire un truc comme ça. J'aime bien cet exemple.Est-ce que vous savez ce que ça va afficher si je fais ça ? Je pense que ça va afficher 5,
00:06:48 :2, 5. Ok, pour tout le monde ok ? Ouais, 5, 2, 5. Ici, je te sens. Ouais, 5, 2, 5. 5, 2, 5, ok.Pas de problème. Jusque là, ça va, c'est bon, il n'y a pas de problème. Par contre,
00:07:14 :il y a quelque chose qui peut poser souci. Imaginez si on fait, je ne sais pas, on valaisser notre, on va juste appeler F1. Si vous faites un truc comme ça, ça c'est un coup et je
00:07:31 :crois qu'elle est tombée au Tosa. Du coup, on est sur la portée des variables. On va s'amuser unpeu avec ça. Alors au Tosa, c'est intéressant parce qu'il était tombé en exercice, ça faisait
00:07:57 :un truc comme ça et là, il faisait genre ça. Est-ce que vous savez ce que ça va afficher ? 5 ? Ok,il y a d'autres réponses. 5 ? Vous êtes sûr ? Ok, je lance. Erreur. En gros, c'est pas mal de le
00:08:24 :revoir et ça, en plus il est tombé au Tosa, je suis en train de préparer, il y a des quiz qui vonttomber encore là bientôt avec l'exercice Tosa. Alors en fait, ce qui se passe là, c'est qu'ici,
00:08:37 :vous définissez X dans l'espace local et vu que je l'ai printé, lui, il ne comprend pas parcequ'en fait, vous l'avez redéfini après et donc lui, il va se dire que X, en fait,est redéfini en espace local. C'est juste ça, en fait. C'est bon ou pas ? Je ne sais pas pourquoi c'est
00:08:56 :gênant, mais c'est sûrement logique. C'est parce qu'on redéfine X dans l'espace local, en fait,de la fonction, donc en fait, il va considérer comme une variable locale. Le problème, c'est
00:09:07 :que tu vas essayer de faire un print avant de lui donner une valeur. Ah oui, d'accord, oui,oui, c'est use before segment. Voilà, donc en gros, ça ne passe pas. D'accord. Il y aurait
00:09:21 :un moyen de faire ça. Alors, il y aurait un moyen que ça fonctionne. Alors, je refais juste unexemple qui serait un peu bizarre. Si je fais ça, que je reprinte X, il reprinte X et là que je fais
00:09:35 :un global X, ok. Oui, là, du coup, on modifie la valeur global. Donc là, en toute logique, ça vaafficher 5 et ensuite 6. Voilà, on est d'accord. Ça, c'est bon, du coup. Ça, c'est pareil,
00:10:02 :c'est des petites blagues autozot qui peuvent arriver. On avait vu autre chose aussi, quandj'avais fait la dernière fois. Il y a un truc que je n'ai pas compris, là, quand même. On revient
00:10:14 :sur le TP juste avant de retirer le global X. Donc là, ça crache, en fait. Ici, t'as des bonnes localerreurs. Oui, ok. Mais alors, si tu commentes le X égale 6, ça crache pas. Alors là, en fait, tu le redéfinis
00:10:40 :plus ici. Tu vois. Donc, quand tu l'as redéfini, ça passe. Vu que tu l'as redéfini, en fait, il va se direqu'il l'a redéfini. Mais le problème, c'est que tu printes avant d'avoir assigné la valeur. C'est juste ça
00:10:51 :qui bloque avec Python, ici. D'accord. C'est bon ? Ouais, ouais. C'est vicieux, parce que la séquence,si on parle de séquence, de séquencement, pour moi, le X, au départ, le print X du F1, il existe.
00:11:09 :Pour moi, il est assigné. Il le trouve quoi ? Il va chercher dans l'espace global, il le trouve,il le print. Après, le X égale 6, dans le F1, il est perdu, en fait. Il n'est pas use, tu vois.
00:11:23 :Non, ça ne marche pas comme ça. Après, il y avait un exemple où, quand on imbriquait les fonctions,aussi, j'en avais fait un, il n'y a pas longtemps, avec les systèmes de closure, en plus.
00:11:41 :Moi, j'en ai eu un à l'évaluation. C'était dans une fonction,tu avais une boucle fort dans la fonction, donc tu avais ta variable qui était définie avant lafonction et qui était redéfinie dans le fort, avec un del juste après, de cette variable.
00:11:59 :Il demandait qu'est-ce qui va se passer. Est-ce que tu vas avoir une erreur ? J'essaie de laretrouver, là, en allumant le compte rendu. Ah ouais, je veux bien voir ce qu'il t'avait mis,
00:12:12 :là. Elle ne me dit rien, celle-là. Du coup, je me suis plantée sur celle-là, c'est pour ça que je l'aioubliée. Attends, où est-ce que je peux retrouver ? Je pense qu'il faut que j'aille sur Isogram pour
00:12:25 :aller voir les... Ah, c'est celui-là, ouais, je veux bien. Ok, vas-y, je te laisse chercher à cemoment-là. Du coup, aussi, ce que vous pouvez faire avec... Il existe aussi des fonctions,
00:12:42 :j'en ai parlé aussi, des fonctions globales. Est-ce que ça, ça vous dit quelque chose ou pas ? Non.Ok, genre, par exemple, ici, si on fait... On va faire un... On va être dans l'or, tac, ok,
00:13:04 :là, je n'ai pas d'erreur, ok. On pourrait très bien faire, ici, un print, et on pourrait l'appelerlocales. Je n'ai pas appelé ma fonction, ça va être embêtant. On va l'appeler, hop là. Ça, je ne suis
00:13:20 :pas sur l'arrivée d'autosat, mais bon, on va en parler quand même. Voilà. Ici, on peut afficher,en fait, sur le dictionnaire, les variables. D'accord. Ça, c'est bon. Et si on fait... Je crois
00:13:39 :qu'on peut faire aussi, voilà, globales, ici. Si vous faites ça, et qu'on fait un x égale 1,ici, je crois qu'on peut afficher aussi ce qu'est un espace global. Oui, voilà, j'ai mon x à 1,
00:13:52 :ici, dans la fin du dictionnaire, en global. D'accord. Ok. Je l'avais montré, je crois. Oui,oui, tu l'avais montré, effectivement. Voilà. C'est bien de le revoir, celui-là. Donc, c'est
00:14:04 :possible. Alors, ça, je ne suis pas à l'arrivée d'autosat, mais au moins, on en parle. Et en plus,on avait vu qu'on pouvait faire un truc assez sympa. Ici, je vais print x, et on va se calmer
00:14:18 :avec le local, par exemple. Ici, je pourrais très bien faire un... Alors, comme c'est undictionnaire, en fait, on peut appeler globales, ici. Donc, il va nous retourner un dictionnaire,
00:14:27 :et on peut aller chercher x. Ok. Et si je redéfinis, donc là, j'ai mon x. Je pourraismême faire ça, ou... En même temps, si je fais ça, à la fin, il vaut bien 100. Voilà. Il y a des
00:14:46 :façons un peu bizarres. Bon, ça, ce n'est pas le genre de truc auquel on s'amuserait, mais c'estpossible. Voilà. Je vais préférer en parler. Autre chose, pareil. Alors, ça, c'est un truc,
00:14:55 :ça, c'est autosat. Ils vont vous le donner. Pour certains, c'est quasiment sûr. Genre, ici,vous avez une fonction. Ils vont faire une fonction. On va faire un... Alors, imaginez,
00:15:08 :ici, vous avez une liste. Hop. Une liste vide. Ok. Et vous faites, je ne sais pas, un liste.happened.Et je crois que Baptiste avait une question, d'ailleurs, là-dessus, une fois. Sur ce truc-là.
00:15:27 :Et là, je n'ai plus ce que j'ai mis comme exemple. Bref, on va mettre test. Ok. Et ici,on peut faire un print de liste. Donc là, si je fais f1, sans surprise, j'ai bien test. Mais le
00:15:45 :truc, le truc, c'est que si, ici, vous faites, genre, une boucle, comme ça, on va mettre 7,par exemple. Tac. Que vous appelez f1, qu'est-ce qu'il va se passer? Il va happen autant de fois
00:16:05 :du range. Ok. Du coup, ce qui veut dire que quand vous appelez comme ça une liste, qu'est-ce qu'ilse passe? C'est un effet de boucle. C'est un loop, je ne sais pas quoi. Ça crache, là, non? Non,
00:16:28 :non, non. Pas du tout. Il va continuer à mettre à jour la liste. Ouais. Ouais, en fait, la listen'avait créé qu'une seule fois, en fait. Dès que vous appelez la fonction, la liste n'avait créé
00:16:39 :qu'une seule fois, du coup. Ok. Alors, ça, c'est pareil. Je suis quasiment sûr qu'ils vont le faire.Et dans certains programmes, c'est lors de petits blagues qui pourraient vous arriver. Ça, c'est un
00:16:52 :coup à galérer, à débuguer. Mais donc, la liste, elle est bien créée qu'une seule fois au début. Etaprès, on va juste faire que ça happen dans la liste. D'accord, j'ai compris. Ok. J'ai trouvé mon
00:17:07 :exercice. Alors, attends, c'est quelle... Tiens, je vais aller rapidement sur l'isographe. C'est quellequestion, toi, c'était laquelle? C'est... Tu me l'as identifié? C'est la PYFR01... Attends, bah 0127.
00:17:23 :T'es où, Aurélie, t'es là? Elle était près des... Non, il ne dit pas si elle est au début ou à la fin,celle-là. Elle a un nom, sinon? C'était la dernière de mon éval. C'était la dernière. La dernière...
00:17:35 :Alors, attends, qu'est-ce qu'ils t'ont fait? Je suis dégoûtée parce que mon premier réflexe, c'étaitde dire que c'était un bandlock à l'erreur. Et puis, du coup, je ne sais pas ce que j'ai fait. Tu l'avais
00:17:51 :bien dit, non? Je ne sais plus si t'avais eu bon. Non, je ne l'ai pas dit. Ah non, t'avais eu une erreur, ok. J'aitrop cogité dessus, j'ai envie de dire que c'était une erreur. Ah oui, ok. Alors, ok, attends, je vais essayer de vous l'extraire et je vais vous le montrer.
00:18:08 :Ouais, c'est celle-là. Ok. Ouais, ok. Voilà, ça va être celle-là. Ok. Voilà. C'est ça? Yep. Ok.Alors, qu'est-ce qu'ils vont faire ici? Non, je crois que c'est un résultat. Donc, là, t'es dans l'espace local,
00:18:48 :dans tous les cas. Ici, ok, il n'y a pas de problème. Ils te font boucler dessus. Résultat, ils te la mettent à 42.Et ouais, mais il y a un problème, du coup. Il ne peut pas avoir un return result s'il est supprimé de la
00:19:05 :mémoire. Bah, ouais, ouais. Ouais, c'est un crash, là, en fait. Bah, oui. J'allais dire. Et t'en sais quoi, du coup,les réponses possibles? Soit ça imprime 33, c'est-à-dire qu'il suit ce qui se passe dans le fort, parce que ça supprime que dans
00:19:24 :le fort. Soit il imprime 42, ce qui n'est pas possible. Soit il soulève une erreur. Soit il imprime une chaîne vide,ce qui est impossible aussi. Ouais, ouais, c'est bon, j'ai trouvé, il y avait ça. D'ailleurs, ça plante... Ah non, non, non,
00:19:38 :j'ai rien vu. Eh ben, je crois que je l'avais eu, celle-là. Ça me dit quelque chose. Intéressant, toi. Ouais, c'est dégueu parce qu'ila recréé juste au-dessus, en fait, du coup. Ouais, ouais, ouais. Mon premier instant, c'est de me dire, bon, bah, ça fait une erreur,
00:19:54 :ça peut pas marcher, le truc. J'étais sûre que le deuxième et le dernier, de toute façon, c'était mort. Et je me disais, mais oui,mais après, bon, est-ce que... Sauf que, en fait, non, c'est là, il l'a redéfini. Je me suis plantée, j'ai trop réfléchi, j'ai mis 33.
00:20:19 :Ouais, tu l'as plus. Ouais, d'accord, ok. Ok, bah, c'était intéressant. Ouais, tu étais prête, et du coup, tu avais coché les deux, toi, voilà.J'avais... Non, tu pouvais en cocher qu'un. D'ailleurs, ils sont chiants. Ouais, c'était qu'un seul. Mais j'avais hésité avec l'erreur, et j'aurais dû mettre l'erreur.
00:20:55 :J'ai cherché aussi s'il n'y avait pas un truc. Enfin, putain, j'ai loupé un truc.Ça, c'est ça, c'est qu'en fait, dans les QCM, t'as l'impression que tu dis non, mais il y a forcément un truc, quoi.
00:21:18 :Et malgré le fait qu'ils te proposent d'en cocher plusieurs, du coup, tu peux te faire avoir là-dessus aussi, c'est un peu chiant.Ouais, ouais, ouais. Non, mais c'est clair. Ok, bien intéressant, quoi.
00:21:29 :Je t'avais dit, c'est les QCM le pire, finalement.Bah, tu vois, alors, en regardant la question, j'ai presque douté, tu vois. Il y a un truc quelque part, mais en fait, non, c'est bien l'erreur.
00:21:40 :Moi aussi, j'hésitais à regarder s'ils n'allaient pas me print un truc, mais non, non.C'est exactement mon raisonnement. Bon, bah, a priori, ça plante, quoi.
00:21:47 :Bon, merci, c'est dans le thème, en plus, c'est cool.Aussi, pour rester un peu dans ce dans quoi on était, imaginez ici, pareil, j'ai toujours ma fonction.
00:22:05 :On va toujours l'appeler fou.Ici, si je fais, par exemple, on va faire comme tout à l'heure, un PUND, j'ai mis test.Ok, on va faire ça, et si je fais ça, hop, je vais créer une liste, hop, comme ça.
00:22:27 :Là, je vais créer une liste. On est d'accord qu'ici, c'est un peu le même principe.Si je fais un principe pour vulgariser, si je fais ça, tac, et que j'appelle fou,si je fais un print après, d'ailleurs, ça fait comme tout à l'heure, ici.
00:22:47 :On est d'accord ou pas ? On va toujours les manger.Il n'y a pas de piège, c'est juste pour être sûr. C'est pareil, ok.Au pire, j'en ai trouvé une autre, parce que j'en avais eu deux, et les deux, je m'étais plantée.
00:23:02 :T'en avais une autre ?Oui, j'en avais une autre, c'était ma neuvième question.Elle est plus simple, ça ressemble à ton tout premier exemple, sauf qu'au lieu d'assigner, au lieu de print, il rajoutait un.
00:23:19 :C'est intéressant ça, si t'as des idées comme ça.Je me souviens qu'on est vraiment le thème en plus. T'en avais une question ?C'est la question 9.
00:23:30 :Ah bah tiens, ok, d'accord. Tu sais quoi, c'est très marrant que tu dises ça, parce que j'allais faire un truc dans le genre.On va voir si tout le monde est au paix avec ça.
00:23:46 :Je viens de l'aller rapidement, mais je l'ai plus sous les yeux. Tu me dis si je me trompe.Est-ce que t'avais pas un truc comme ça ?
00:23:55 :Ouais.Je crois qu'il mettait la fonction en dessous, comme ça c'est un peu plus noté.Si je fais ça, comme ça, et ensuite ils te font quoi ?
00:24:07 :Après ils t'appellent.Ils t'appellent directement ?Après ils t'appellent, ouais.Ok.Et ici, qu'est-ce que ça fait ?La question c'est ça, c'est qu'est-ce que ça te ressortait toi ?
00:24:28 :C'est ça exactement.Ouais, ouais.Est-ce qu'il y en a qu'en une idée ?Bah en fait le résultat, le fou ne retourne rien déjà.Tu retournes X ?
00:24:42 :Non, ça change rien.Ok.Ça change rien parce que tu ne stockes pas le résultat de fou nulle part.Ok.Donc en fait la question c'est quelle est la valeur de X une fois qu'on a tout lancé.
00:24:58 :Non, non, non, les questions les plus sympas, en gros qu'est-ce que le pack va faire du coup ?J'ai bien entendu ce que t'as dit quoi ?
00:25:07 :J'ai dit ça fait rien, t'as pas de print, du coup ça affiche rien.C'est ça la question ?Non.Tu peux lire les propositions ?
00:25:15 :Vas-y, vas-y, vas-y.Alors, il y a trois propositions.Soit le code s'exécute sans erreur et X est égal à maintenant 2.Soit il s'exécute sans erreur mais X reste à 1.
00:25:30 :Soit le code produit une erreur.Ça fait pas 2 ? Parce que vu que tu ne redéfinis pas X dans la fonction, il va prendre le X du global, non ?
00:25:42 :En fait, on lance, en gros ici vous avez une erreur.Parce qu'en fait, là on est sur un objet immuable et donc lui il va essayer de tenter de refaire un nouvel objet.
00:26:04 :Mais il n'y arrive pas, on est sur un objet immuable.C'est pas possible ça, on peut pas le faire.Ça c'est impossible à faire.Il faudrait encore une fois, si on veut toucher soit à l'espace global, on utilise le global comme on l'a fait tout à l'heure.
00:26:20 :Soit on va redéfinir une valeur dans l'espace local.Ou faire un global de X comme on l'a fait tout à l'heure.Et là ça passe, la fonction n'a pas d'erreur.
00:26:38 :Donc c'est un peu ce qu'on a vu tout à l'heure.Mais vous voyez, c'est Autosa, donc ils l'ont posé.Et je crois que j'étais d'ailleurs au réalisme, je l'ai vu.
00:26:44 :Dans un futur plus qui va sortir, il va y avoir ta question.J'avais regardé un peu les tiens et c'est intéressant.C'était marrant ta question.
00:26:52 :Alors, il y a un autre cas.Je pense que...Je sais pas si c'était Autosa celui-là.Genre, imaginez, ici, on va faire un truc dans le genre.
00:27:07 :On va faire un petit make counter ici.count est égal à zéro.Alors attention, là on va faire une fonction imbriquée, counter.Et ici, on va faire un count plus égal à 1.
00:27:31 :On va l'incrémenter.Ok.On va return count.Et là, on fait un return de counter.Je pense que ça peut être pas mal.Ensuite, on va faire...
00:27:52 :Comment il faudrait faire ça ?On va faire un print de...On va faire...On va le...Pas directement, on va faire un truc plus bête.
00:28:09 :On va faire make counter ici.Parce qu'on a une fonction imbriquée qui retourne justement cette fonction imbriquée.Donc ce que je peux faire après, c'est faire ça et ça.
00:28:20 :Et ce que je vais faire, c'est que je vais me sauvegarder un exemple.Ça peut être pas mal, je pense.Je me le mettrai dans mon obsidian.
00:28:26 :Hop là.Tac.Et voilà.Je vais le copier, comme ça je l'aurai.Et donc ici, si je l'exécute, on va avoir un petit problème.Ok ?
00:28:49 :Parce que l'erreur est...C'est pareil que si on a une locale erreur, elle est explicite.Ici, il n'arrive pas à accéder à la variable.Donc, ce qui se passe ici, c'est que si on revient ici...
00:29:07 :Alors, tac.Il faudrait ici faire un non local.En faisant une fonction imbriquée comme ça, on peut faire ça, un non local.Tac.Et comme ça, on va aller chercher, on va lui dire qu'on va aller chercherce qui est dans la fonction supérieure, dans l'espace le plus proche.
00:29:30 :Ouais.Boum, et là ça passe.Ok ?Ça c'était ok pour tout le monde, le non local ?Ou c'était la première fois que vous le voyez ?
00:29:40 :Non, je n'ai jamais utilisé ça.C'est la première fois que je le vois.First time.Je ne l'utilise pas par contre quand je le vois.
00:29:49 :Je n'ai jamais été amené à faire ça.Donc voilà, c'était un petit truc pour savoir.Là, encore une fois, c'est parce que c'est un non mutable.
00:30:02 :C'est parce que c'est un entier.Si on faisait la même chose avec une liste, avec un append, ça marchait.Là, je ne sais pas, tu voudrais faire quoi ?
00:30:11 :Genre, avoir ici une liste ici ?Du coup, ce n'est plus un count.Ça revient à faire un append.Mais là, du coup, j'ai utilisé le non local.
00:30:18 :Oui, on s'en fiche.C'est ça.En gros, tu pourrais faire ta liste.Oui.Tu ferais ça.Ici, tu ferais un truc genre liste.append.Et normalement, je ne sais pas.
00:30:33 :Qu'est-ce que j'ai fait là ?Attends, j'en étais où ?Je fais ma liste.Ah oui, par contre, je vais en avoir besoin.Non, ok, c'est bon.
00:30:48 :Donc en gros, liste.J'efface ça.Je le garde.Je m'en fous de ça.Qu'est-ce qu'il me fait ?Ici, je peux très bien faire une liste.append.
00:31:01 :Ici, je retourne ma liste.Et puis, en fait, maintenant...En dessous aussi.Ah oui, ok.J'ai bien 3.Là, ça marche.Donc, fondamentalement, là, c'est presque un coup.
00:31:17 :C'est un entier.Donc, c'est immuable.Là, c'est une liste.C'est mutable.Oui.Donc, la frontière est là, en fait.Oui.Ok.Donc, voilà.C'était un peu des...
00:31:34 :Je voudrais revenir là-dessus ce soir.Parce que c'est assez important, en fait.Pas que pour le Toza, en général.Mais je sais que pour le Toza, ils aiment bien faire des petites blagues là-dessus.
00:31:45 :Il y en a pas mal comme ça, des assez rigolos.Pour finir, j'avais dit que j'en parlerais.Il y a une personne qui a fait le parcours...
00:31:56 :Le parcours...C'est quoi, c'est notifiant ?Hop.Qui fait le parcours, là, donc, le premium.Je ne sais pas si vous vous souvenez, vous, de l'exercice du jeu de rôle.
00:32:05 :Oui ?Oui.Ok.Du coup, il a commencé à faire...Il n'en est pas forcément aux fonctions, mais il a commencé à mettre des fonctions.
00:32:17 :Et donc, je ne sais pas pourquoi j'ai voulu faire ça.J'étais en mode porter des variables.Donc, lui, par exemple, il n'avait pas ça, à la base.
00:32:24 :Ça, c'est moi qui l'ai rajouté.Donc là, un exemple typique.Ici, à la fin du combat.Donc là, vous voyez, il va faire ses attaques, machin, attaque ennemi.
00:32:34 :Là, c'est les potions, ok.Et à la fin, en gros, si notre vie est inférieure à zéro, que l'ennemi a une vie supérieure, en gros.
00:32:48 :Vous avez perdu, vous avez compris.Donc, vous avez perdu.Sinon, match nul.Enfin, et si, du coup, nous, notre vie...Qu'est-ce qu'il a mis ?
00:33:02 :Attends, je n'ai pas fait gaffe.Oui, c'est tous les deux un négatif.Oui, c'est bon, le match nul.Non, le truc, il m'a gagné, j'ai eu peur.
00:33:10 :Le gagné, il est bien là, c'est bon.C'est pour ça que j'ai dit là.Quelqu'un qui attaquait avant l'autre.Oui, oui, non.Oui, vas-y, dis-moi.
00:33:20 :Ça ne peut pas arriver, le match nul.Oui, ça ne peut pas arriver, le match nul.Il disait que l'attaque était séquencée et que l'ennemi attaquait forcément avant toi.
00:33:28 :Oui, alors, j'ai gardé sa version telle qu'elle.Je l'ai gardé telle qu'elle.Lui, il a implémenté ça dans sa version.Donc, pourquoi pas.Souvent, l'exercice, moi j'aime bien, j'accepte un peu les petites choses en plus comme ça que certains peuvent rajouter.
00:33:48 :Mais en fait, j'ai bien aimé parce que lui, en fait, il a fiché de manière brute.Il vous reste genre moins 3, vous êtes à moins 3 points de vie et l'ennemi est à moins 5 points de vie par exemple.
00:33:59 :Et donc, je lui dis, pour l'afficher, ce que tu peux faire, c'est que si jamais tu es inférieur à 0 en point de vie,tu peux afficher 0 et pareil pour l'ennemi.
00:34:09 :Que ce soit pour l'utilisateur ou l'ennemi, tu affiches 0.Mais là, on est d'accord que les points de vie, en réalité, dans l'espace global ne se touchent pas.
00:34:18 :Oui, c'est que pour la fonction.En gros, ici, on est un peu sur le cas de tout à l'heure.Je vais créer ici une variable locale qui va me permettre d'afficher 0.
00:34:37 :Mais en vrai, à ce moment-là, tu peux garder tes points de vie négatifs si tu as envie.Je ne sais pas pour autre chose, on ne les touche pas, on les garde négatifs.
00:34:44 :Mais pour l'utilisateur, on va les afficher ici à 0.Genre, si je lance, là, vous voyez, ça marquait bien, il vous reste 0 point de vie.
00:34:58 :Il reste 1 point de vie à l'ennemi.Donc en fait, moi j'étais à moins 9 et lui était à 15.Ce qui veut dire que dans l'espace global du script, au niveau des points de vie ici,moi j'étais bien à moins 9, mais c'est juste dans l'espace local que je vais dire,
00:35:15 :en gros, on était à 0 point de vie.C'était juste pour lui expliquer le concept, quelle utilité ça peut avoir.Peut-être que pour autre chose, il aurait besoin de garder le négatif dans son espace global.
00:35:26 :Mais pour l'affichage d'utilisateur, il voulait mettre un 0 par exemple.C'était juste pour clôturer là-dessus.Donc voilà, ça fait du bien de revoir tout ça sur les parties des variables.
00:35:40 :Moi j'ai toujours peur de m'y perdre à chaque fois quand je parle de ça,parce que des fois c'est un peu casse-tête.Le non-local c'est un peu comme le global, si tu peux éviter de l'utiliser.
00:35:53 :Ouais, moi j'évite, je ne l'utilise jamais de toute façon.Moi je ne bosse quasiment qu'en framework,et je n'ai jamais été dedans à l'utiliser dans un framework, un global, un local.
00:36:08 :Je pense que c'est un coup à avoir des effets un peu bizarres.C'est bien de savoir que ça existe.Ouais, donc voilà.Est-ce que vous avez des questions ?
00:36:19 :Je suis désolé, on n'a pas vu de...Si, merci Aurélie, on a vu des questions en rapport avec ça, soit.C'était en plein dans le thème.
00:36:27 :Mais est-ce que sinon vous avez des questions ?Est-ce que ce n'était pas trop redondant par rapport à ceux qui étaient là la première fois ?
00:36:38 :Non, non, c'est bien.Ça refait une bonne piqûre, c'est bien.Ouais.Je sais qu'il y a Baptiste qui était là aussi,donc Baptiste, j'espère que ça n'a pas été trop redondant pour toi.
00:36:49 :Mais il me semble que tu étais là toi d'ailleurs.Qu'est-ce que je veux dire ?Donc voilà, le prochain mentorat, du coup, je pense que je vais prévoir la...
00:36:58 :Ça vous intéresse les mentorats où on voit les questions posées par Toisa,ça vous va ça ou pas ?Ah oui.Ouais ?Ouais.Comme ça, on va en revoir la prochaine fois, la semaine prochaine, jeudi soir,je vais en préparer quelques-unes et puis on va les voir.
00:37:13 :De toute façon, à force de les voir, ça vous donne en plus pas mal de chancesde vous les avoir au Toisa, d'avoir les bonnes réponses.
00:37:19 :Et en plus, en général, ce qui est intéressant, c'est que ça fait travailler les concepts derrière,donc c'est pas mal.Ouais.Donc même pour ceux qui ne font pas le Toisa, c'est toujours intéressant.
00:37:31 :Ouais, ouais.Donc voilà.Est-ce que c'est pour vous du coup ou pas ?Oui.Merci beaucoup.Merci à vous.C'est normal.Merci bien.Super.Merci.
Aucune occurrence trouvée pour « ».