Session du 17 novembre 2022 à 20h00
Structures de Données
Algorithmique & Performance
Programmation Orientée Objet (POO)
Deviens membre Premium magic_button
Cette session de mentorat est réservée aux membres Premium. Rejoignez-nous pour accéder à toutes les rediffusions des sessions de mentorat !
Premium
- check +100h de formations
- check +180 exercices de code
- check +100h de mentorats en rediffusion
- check 20 projets
- check Mentorats groupés hebdomadaires
- check Support individuel avec nos mentors
Debug Python, héritage et complexité
-
dictionary setdefault exercice avec debug
-
classe et heritage (exemple avec modélisation sol)
-
algorithmie et big 0 notation
-
du fun avec turtle
00:00:00 :Pourquoi juste pour cette session 6 si c'est vraiment le seul truc à changer du coup.Ok du coup, hop, moi je me cache et je vous laisse.
00:00:09 :Ok, bah merci, n'hésite pas à intervenir.Yes.Hum, attends je vais juste vérifier que c'est bien parti l'enregistrement, ouais ça a l'air parti.Ok, hum, attends j'affiche le chat ici.
00:00:24 :C'est pour moi ça non?Ouais entre autre, c'est bien franchement que les gens posent des questions comme ça, ça donne des idées pour les mentorats.
00:01:06 :Donc on voit des choses, soit on approfondit des choses qui sont vues dans la formation, soit on répond à des questions en particulier qui permettent un peu d'évoquer des choses,d'aller plus en profondeur et puis sinon on découvre des trucs différents.
00:01:22 :Ouais, attends je grossis, excusez moi j'ai peut-être, sur Windows vous savez comment on fait pour grossir, parce que d'habitude je suis sur Mac,et là comme il y a un truc spécifique que je vais vous montrer, c'est bon comme ça la taille?
00:01:43 :Dites moi si ça va, ok. Ouais, donc le thème du jour, j'ai plusieurs trucs à vous montrer,donc on va commencer par un cas pratique d'utilisation du debug dans VS Code ou PyCharm, c'est la même chose,mais là je vais utiliser VS Code, moi c'est celui que j'utilise. Ensuite je voulais vous montrer une classe que j'ai faite récemment dans le cadre de mon boulot,
00:02:14 :mais je me suis servi de l'héritage et un peu de classes abstraites, donc je me suis dit que c'était, pourquoi pas vous montrer un peu cette classe là,pour vous montrer un peu l'héritage dans un cas pratique. On va peut-être pas rentrer dans les détails de tout ce qu'il y a dans la classe,
00:02:38 :c'est un truc built-in de Python, c'est pas mal quand on commence, c'est marrant. Après en fonction des questions et tout ça,j'avais préparé un article sur la mesure de la complexité d'un algorithme, ça peut paraître un peu barbare en fait, mais quand on regarde ça de loin,on peut se dire, putain je comprends rien, mais en fait ça coupe souvent la vidéo et le son chez moi. Est-ce que chez les autres c'est pareil?
00:03:13 :Je sais pas moi aussi, non, oui. C'est quoi ça coupe et puis ça revient ou c'est quoi c'est du lag?C'est pas très profond, mais... Ok, bon j'espère que... Dites moi si ça continue et puis si...
00:03:34 :C'est un freeze en fait, c'est un freeze qui dure 2 secondes et puis après ça revient.C'est que sur la vidéo ou c'est sur le son aussi?
00:03:40 :Les deux.Ok, dites moi si ça continue et si c'est trop insupportable, je changerai.Et donc, j'étais en train de dire quoi?Excusez-moi, je suis perdu. Ah oui, j'avais préparé un article pour vous expliquer comment on mesure la complexité d'un algorithme,
00:04:06 :et puis peut-être qu'on fera à la place, il y a une question là sur le forum, sur le make trans et translate.C'est des méthodes de string et voilà, je montrerai un cas d'application.
00:04:23 :Du coup je vous propose qu'on commence par la partie débug, si ça vous va.Et s'il vous plaît, dites moi bien dans le chat s'il y a vraiment des coupures de vidéos et de sons qui sont trop insupportables.
00:04:35 :Bonsoir Stéphie.Alors, je ne sais pas si vous reconnaissez ce...Je ne sais pas si vous reconnaissez...Je n'ai pas de problème de connexion normalement, là je suis passé sur ma machine Windows, donc peut-être que ça va galère.
00:04:55 :Est-ce que... Ouais, ça vous parle. Donc en gros l'idée c'est d'avoir un dictionnaire.Ouais, peut-être. Je vais couper ma vidéo.Je la remettrai de temps en temps.
00:05:13 :Du coup ici, on a un dictionnaire et en fait l'objectif c'est de parcourir le dictionnaire.Ici on a des prénoms associés à des noms.Et l'idée c'est que quand on a un nom, vous voyez qu'il y a plusieurs noms qui reviennent plusieurs fois, donc Smith, Moulin, etc.
00:05:34 :C'est d'associer seulement des noms uniques à différents prénoms.Donc ça c'est l'exercice, mais moi ici l'objectif ce n'est pas de faire l'exercice, c'est plutôt de vous montrer...
00:05:46 :...c'est plutôt de vous montrer le debug.Ok, je vais quitter.Donc en gros le debug, comment ça fonctionne?Ici vous voyez, quand vous allez dans la gouttière, vous avez un petit point rouge qui apparaît,et en fait ça vous dit où est-ce que vous mettez le point d'arrêt de votre debug.
00:06:10 :Moi je me sers souvent du debug quand il y a une boucle, parce que moi j'aime pas trop debugger avec des prints,c'est-à-dire rajouter un print ici pour voir ce qu'il se passe, c'est un peu chiant.
00:06:24 :Et vous allez voir qu'avec le debug c'est beaucoup plus pratique.Imaginons, je mets mon point d'arrêt ici, donc je clique dans la gouttière et le point rouge vous voyez ne bouge plus maintenant.
00:06:31 :Donc pour ceux qui utilisent VS Code c'est comme ça, sur PyCharm je crois que c'est pareil,c'est comme ça, c'est dans la gouttière, il faut mettre le point d'arrêt.
00:06:39 :Et ensuite il vous suffit d'avoir ici, vous lancer, exécuter et debugger.Lui il va vous demander qu'est-ce que c'est ton script, là je l'avais déjà renseigné,mais en fait il va vous demander, ah ok, du coup vous avez vu la réponse de Thibaut sur PyCharm, c'est pareil,vous avez un petit point comme ça qui parcourt la gouttière, donc ça va sensiblement être pareil dans d'autres,
00:07:03 :après si vous utilisez Emacs ou Vim, il faut les configurer, c'est un peu plus galère.Mais sinon c'est à peu près similaire.Donc en fait ce que j'ai fait, j'ai lancé le debugge, et vous voyez qu'ici j'ai des choses un petit peu différentes.
00:07:25 :Donc là moi j'ai commencé, vous voyez Names, ici comme mon debugge je le mets ici,j'ai accès à tout ce qui s'est passé avant jusqu'à ce qu'il arrive au point de debugge.
00:07:35 :Donc pour l'instant j'ai juste ça.Et vous voyez ici vous avez aussi un affichage des variables.Donc je trouve que c'est vachement intéressant parce que vous voyez si j'avance d'une itération,donc là en fait il s'est arrêté ici, si je fais le step suivant, en fait il va juste incrémenter.
00:07:54 :Donc il va aller dans la boucle, il va faire une itération et il va revenir.Parce qu'en fait comme j'ai mis un point d'arrêt, il fait itération par itération.
00:08:03 :Et maintenant vous voyez qu'ici si je retourne dans ma console de debugge et que je tape K,il me dit qu'en fait j'en ai arrivé à la clé Patrick.
00:08:12 :Donc c'est bien la première ici.Si je fais Value, je suis à Smith, et donc c'est bien correct.Et ça vous permet de voir un peu, c'est un grand mot, mais en temps réel ce qui se passe dans votre script,sans avoir à faire des prints dans tous les sens, et puis après vous les oubliez dans votre script,
00:08:30 :vous savez plus où est-ce que vous en êtes.Donc voilà, il faut vraiment penser à quand vous avez des boucles et que vous ne comprenez pas ce qui se passe,utiliser le debug et vous allez voir que c'est assez performant.
00:08:40 :Vous pouvez même avoir par exemple, si vous avez plusieurs modules qui font appel les uns aux autres,vous pouvez mettre un point d'arrêt dans un des modules.
00:09:02 :tu as ce truc là, pas à pas. Dans Pascal du coup, j'imagine que c'est VBA, Camel, les anciens, c'est un peu la même chose.C'est à dire que, si je ne m'abuse, là ça marche bien dans le cadre d'un langage interprété,c'est à dire en fait il va ligne par ligne. Je ne sais pas si sur un langage compilé, je ne suis pas sûr que ça puisse marcher un debugger,
00:09:29 :en tout cas de cette manière là.Donc en gros vous voyez qu'ici vous avez votre console de debug et puis après vous pouvez même faire des choses,vous pouvez lui dire value.replace, je vais remplacer les m par des n.
00:09:46 :Ça marche en fait, vous êtes vraiment dans une console que vous pouvez interagir avec les variables.Donc en fait c'est pas mal parce que si vous vous rendez compte que dans un script vous avez un problème quelque part,vous pouvez mettre un point d'arrêt juste avant ce problème.
00:10:07 :Donc si il m'avait dit t'es une erreur à la ligne 12, je serais arrivé à la ligne 11, j'aurais mis mon point d'arrêt à la ligne 12et comme ça je serais arrivé juste à la ligne 11 et j'aurais pu manipuler mes variables, un peu voir ce qu'il se passe, tester,
00:10:18 :et sans avoir à tout relancer. Parce que si par exemple vous avez un script avec une boucle où en fait vous avez 1000 itérations,mais que le problème il arrive que à la 500e itération, vous devez lancer votre script, attendre les 500 itérations.
00:10:39 :Donc voilà comment moi j'utilise le debugger, surtout en fait je retourne dans, donc je lance le debugger,je vais voir la console de debugger pour aller interagir avec mes variables,et puis en même temps ici je peux aller voir ce qu'il se passe dans mon script.
00:10:58 :Donc là vous voyez que petit à petit il va faire ce que le script demande.Bon je vais juste expliquer rapidement ce que fait le script avec le setDefault.
00:11:09 :En fait setDefault c'est un peu comme, vous savez quand vous avez un dictionnaire, vous pouvez faire un getItem.Et en fait un getItem ça veut dire que vous allez renseigner une clé, et s'il ne trouve pas cette clé dans le dictionnaire,il va vous renvoyer une valeur, mais il ne va rien faire, il ne va pas altérer le dictionnaire.
00:11:31 :Alors que setDefault, lui il va vraiment altérer le dictionnaire, s'il ne trouve pas la clé, il va vous mettre la valeur par défaut,en revanche s'il la trouve, il va vous l'afficher. Donc vous voyez c'est un peu différent.
00:11:44 :Ici vous voyez si j'itère à chaque pas de temps, donc là il rencontre, j'avais expliqué en détail,Gabriel avait posé une question sur le forum pour essayer de comprendre ce qu'il se passe dans ce script,donc j'avais essayé de faire une réponse détaillée.
00:12:00 :Donc en gros ici vous initialisez un dictionnaire qui est vide, ici vous avez un dictionnaire qui est déjà rempli avec des prénoms et des noms,et là vous avez un dictionnaire qui est vide.
00:12:12 :Ici quand vous faites forKeyValueInNamesItems, vous itérez les clés et les valeurs de chaque ligne du dictionnaire,donc en gros forKeyValueInNamesItems, je vais sortir de la console de débugage,je vais retourner dans le script,et je vais juste faire un...
00:12:44 :C'est vrai que ça coupe, ça fait chier.Hum, attendez je réfléchis parce que ce que je vais vous montrer après c'est sur...Attendez je vais essayer quelque chose.
00:13:08 :Est-ce que vous m'entendez?Ouais, le son est bon.Alors si ça va pas, j'ai fait un peu une solution manouche où j'ai le son sur le son,et mon écran sur l'autre, donc dites moi si ça continue à couper.
00:13:39 :Donc en gros ici, quand vous avez un dictionnaire, vous pouvez itérer les valeurs comme ça,donc en fait ici si vous faites forKeyValueInNamesItems,et que vous faites print KeyValue,bon désolé pour ceux qui connaissent déjà, mais en fait c'est tout simple,vous avez la clé et la valeur, et puis ça fonctionne très bien.
00:14:10 :Donc en gros ce qu'il fait ici, le script, je vais revenir dans le débugage,débugage,ce qu'il fait le script c'est que quand il va regarder dans le dictionnaire,il va dire que cette défaut value, donc en fait s'il trouve la valeur,donc ici la value ça va être le nom,
00:14:36 :donc s'il la trouve, il va ajouter cette valeur par défaut qui est la liste vide,et une fois qu'il l'a trouvée, il va ajouter la clé qu'il a trouvée dans le dictionnaire.
00:14:53 :Du coup, j'ai lancé une itération, donc vous voyez il est arrivé sur Smith,donc Smith ça n'existait pas à la première itération parce qu'il était vide,donc ce qu'il a fait c'est qu'il a fait une valeur par défaut qui est la liste vide,et il lui a ajouté la clé, donc la clé c'est Patrick,
00:15:14 :vous voyez est-ce que c'est clair?Dites moi, je continue, voilà je vais faire une itération suivante,donc là si je vais voir dans mon débugger, je vais afficher Key,donc là maintenant je suis à Julie, et en value je suis bien à Merci.
00:15:30 :Donc là Mercier c'est la même chose, ça n'existe pas,du coup à Mercier il associe la liste vide et il lui ajoute Julie qui était la clé.
00:15:39 :Donc pour Moulin ça va être pareil, ça n'existe pas,donc pareil il va créer un truc vide et il va ajouter,et maintenant qu'est-ce qui se passe quand j'arrive à Gérard?
00:15:48 :En fait Gérard vous allez voir, Gérard sa valeur c'est Moulin,et Moulin ça existe déjà dans le dictionnaire résultat,et du coup comme ça existe déjà, il ne va pas recréer une liste vide,parce que ça existe déjà, il ne va pas donner cette valeur par info,il va juste ajouter la clé qui est Gérard.
00:16:17 :Et donc voilà comment on peut faire cet exercice,où on récupère que les noms uniques et on associe les prénoms qui ont ce nom.Donc ne vous en faites pas pour le script ici,l'objectif ce n'était pas de vous montrer, d'expliquer ce script là,vous pouvez aller voir directement dans l'information,
00:16:34 :où la réponse est juste de vous montrer le debugger.Est-ce que ça vous va pour le debugger, c'est assez clair?Dites moi si vous voulez en voir plus sur le debugger,et je vous conseille vraiment de l'utiliser plutôt que de faire des prints.
00:17:03 :Des prints en fait il y a...En fait j'avais vu une vidéo, je me demande si c'est pas une vidéo de Thibaut,en gros tu as trois niveaux de debugger,le premier niveau, le niveau 0, celui un peu que font les débutants,c'est ils utilisent le print, en fait on met des prints partout,
00:17:25 :et puis on regarde où est-ce qu'on en est.Ensuite tu as le niveau 2,où au lieu de faire des prints, tu fais des fichiers de log,c'est à dire que dans ta boucle ici, au lieu de rien afficher...
00:17:48 :Ah ok, merci Vincent pour le partage.Ici en fait on pourrait dire,vous pouvez faire un fichier de log,ou en fait vous dites withOpen, je vais pas le faire à chaque fois.
00:18:03 :En fait vous pouvez le mettre là, vous mettez un fichier de log,et c'est à dire qu'à chaque itération,vous mettez dans votre fichier de log la valeur de key et de value par exemple,pour aller accéder plus tard à votre fichier de log,sans perturber votre script, où vous n'avez pas des prints partout.
00:18:22 :Et pour moi le niveau 3, le niveau de debug le plus sophistiqué,c'est d'utiliser les debuggers comme ça.Ou ce que par exemple vient de mettre Vincent à disposition.
00:18:33 :Je ne connaissais pas, c'est quoi Colo, permet de faire du debug,c'est pas jamais suivi.Je trouve que le debugger de VS Code, il est quand même pas mal fait,c'est pareil, vous avez votre console de debug,et vous avez aussi vos variables de script qui s'affichent là à gauche.
00:18:51 :C'est intéressant.Il y a quelqu'un qui demandait un autre exemple,je n'ai pas trop d'exemples en tête.En fait ça va être un peu la même chose,si par exemple tu as une boucle,et que tu fais des divisions de nombre par exemple,et qu'au bout d'un moment tu te retrouves à faire une division par 0,
00:19:20 :des fois tu ne t'en rends pas compte,parce que diviser par 0, tu ne peux pas faire en maths, c'est interdit.Je vais voir si je fais...
00:19:33 :Pourquoi je n'ai plus ma boucle?Si, il y en a un, je vais le remontrer.Ici Vincent sur le côté, tu as tes trucs,tu vois là j'ai IK, Value,tu as tout ce qu'il faut.
00:19:53 :Ça c'est vraiment le live de tes valeurs,et ici tu as ta console de débug,à laquelle tu as accès à tous tes trucs à chaque pas de tas d'itérations.
00:20:02 :Voilà pour le débug,je pense qu'il faut que vous l'utilisiez pour vous en rendre compte,mais c'est assez puissant et pratique pour débugger proprement.J'essaierai de penser à un autre exemple,qui avait posé la question.
00:20:24 :Le print partout j'avoue, je le fais tout le temps.Encore un exemple, Arnold.Avec 2 breakpoints.Ici tu pourrais...Tu peux en mettre autant que tu veux.
00:20:59 :Là j'en mets un là,je sais pas, 4K in range, 3, print, je suis dans l'itération.Comment on fait ici?Comment on fait les accolades sur Windows?
00:21:32 :Sur l'itération K,est-ce que tu peux mettre un autre breakpoint ici?Si je lance mon langage,là j'ai mes variables,je rentre une première fois,pour l'instant K est toujours à 0.
00:22:06 :Je lance K, il est à 0,continue 0, 1, 2,et il va revenir à 0.Là il revient à la boucle mère,et j'ai fait l'erreur moi-même,où j'ai fait print,je peux juste faire un pass comme ça.
00:22:31 :Et tu vois qu'il continue à faire, à itérer.Tu as accès à ta valeur K,mais j'ai toujours accès à K.Tu peux mettre autant de breakpoints que tu veux.
00:22:47 :Essaye de regarder aussi Arnold,si tu veux voir...Arnold, tu peux faire un test,où tu as deux modules,et tu mets un breakpoint dans un module,dans celui qui t'appelle,et dans le main tu mets pas de breakpoint,et tu verras que ça fonctionne très bien.
00:23:11 :Dans cette vidéo,tu peux lancer ton script,et il va t'arrêter à un point du breakpoint du script que tu appelles.Je pense que c'est bon pour le debug,le mieux c'est que vous l'utilisez,et si vous avez des questions, comme d'habitude,n'hésitez pas dans la communauté à nous en faire part.
00:23:34 :Est-ce que ça vous intéresse de voirles méthodes de string?Est-ce que ça vous intéresse de voir ce qu'on peut faire avec?C'est une méthode améliorée,mais un peu plus sophistiquée que replace dans un string.
00:23:57 :Ici quand vous avez n'importe quel...Ça sert à quoi? On va faire ça.Quand vous avez...Je vais essayer de reprendre l'exemple.Imaginez que vous avez un string,un word qui s'appelle...
00:24:19 :le classique.Par exemple, ça peut être un texte,ça peut être un truc beaucoup plus grand.Si vous voulez dire, j'aimerais que ça soit un texte,un truc beaucoup plus grand.
00:24:34 :Si vous voulez dire, j'aimerais bien remplacer,je ne sais pour quelle raison,tous les O par des A.Replace tous les O par des A.
00:24:46 :Et vous voyez qu'il a remplacé tous les O par des A.Après si vous vous dites, j'aimerais bien remplacer aussitous les L par des M,vous allez d'abord remplacer tous les O par des A,et ensuite tous les L par des M.
00:25:05 :Vous allez faire replace, on met L et on met M.Donc voilà, petit à petit vous pouvez faire ça.Mais par contre, imaginez maintenant que vous voulez...
00:25:14 :Est-ce que je vais prendre comme exemple?En fait le problème c'est que vous allez remplacer les motsà chaque fois.Et si par exemple après ici je remets,il va remplacer les mots à vérifier pour ne pas te louper.
00:25:35 :Attends, c'est ton programme.Qu'est-ce que tu veux dire?Guest d'ailleurs, pardon, je ne sais pas qui...C'est le pseudo qui est comme ça ou c'est parce qu'il n'y a pas de nom de renseigner?
00:25:50 :C'est Willy, ok.Qu'est-ce que tu veux dire par vérifier pour ne pas te louper?C'est ton programme.Ah non, mais en fait, uTurtle demande ça sert à quoi.
00:26:02 :Il parle de la méthode dont je parle sur les translates.Il ne parle pas du débugge, je pense.Corrige-moi, uTurtle, mais tu parlais de la méthode.
00:26:14 :Donc en gros, il y a une autre méthode qui permet de remplacer.C'est makePronce.En gros, ce qu'il fait, c'est d'abord un mapping.Je vais écrire et puis je vais vous expliquer.
00:26:28 :M2 égale...Je ne vais pas mettre un i au milieu.Je vais mettre...Je ne sais pas, je dis une bêtise.Et en gros, vous dites, je voudrais que tu me remplaces tous les...
00:26:46 :Grâce à cette méthode, vous pouvez dire, je veux que tu me remplaces tous les Y par des L,tous les A par des O et tous les K par des I.
00:26:53 :Et en fait, ça passe d'abord par un......mapping et on fait ça avec makePronce.Donc en gros, je récupère...Attendez, c'est str.makePronce.Je vérifie, je ne vais pas vous dire une bêtise.
00:27:13 :Voilà.Donc en fait, là il me fait un mapping.En fait, il nous donne un dictionnaire qui paraît illisible.Mais en fait, c'est très clair.
00:27:24 :Vous avez le code ASCII avec la correspondance.Donc en gros, je vais vous montrer après.Vous avez, pour un traitement linguistique...Ouais, exactement.En fait, il va dire, 121, c'est le code ASCII de Y.
00:27:37 :Il va dire.........121, ça devient L.Donc 121 devient 108, qui est le code ASCII de L.Pour vous en convaincre, pour avoir le code ASCII d'un caractère,vous pouvez faire ORD.
00:27:51 :Et ici, si je fais ORD Y, vous voyez qu'il me donne bien 121.Et si je fais ORD L, il me donne bien 108.Donc en gros, ce qu'il dit, c'est qu'un mapping,c'est rien d'autre qu'une table de correspondance.
00:28:03 :Donc en gros, il va dire...J'arrête de dire en gros, parce que je le dis beaucoup, j'ai l'impression.Ce qu'il fait, c'est que...Il fait sa table de correspondance,et ensuite, vous utilisez cette table de correspondancepour faire une traduction.
00:28:24 :C'est pour ça que ça s'appelle Trans, c'est Translate.Donc en gros, c'est...C'est dingue.En deux étapes, vous faites d'abord le mapping de correspondance,et ensuite, vous faites la traduction.
00:28:33 :Donc si je veux utiliser la traduction,c'est...On va avoir une phrase, donc je vais dire...Ma phrase, ça va être...I love Yacht.And...
00:28:49 :And I wish you a Merry Christmas.Et ce que je veux faire, moi, je veux lui...Je veux utiliser ma table de...Ici, de...Donc soit vous rentrez un dictionnaire,soit vous rentrez directement votre table.
00:29:08 :Cette table de traduction.Donc en fait, vous voyez que...Ma phrase, I love Yacht,donc pour l'instant, I love,ça n'existait pas dans ma table de translation.
00:29:20 :Parce qu'en fait,je veux remplacer les Y par des L,les A par des O, et les K par des I.Donc là, pour l'instant,j'ai pas I love, j'ai rien rencontré de là-dedans.
00:29:31 :Et ensuite, vous voyez qu'ici, j'arrive à...Ici, j'arrive à Yacht.Donc en fait, Y, il me le remplace par le L.Le A, il me le remplace par le O.
00:29:42 :Le K, il me le remplace par I.Et S, il conserve S.Et donc en fait, vous voyez queça peut être assez puissant quand même,parce que ça vous permet de faireun peu des traductions, des...
00:29:58 :des modifications suivant un dictionnaire,suivant beaucoup de clés et de valeurs.Imaginons que vous avez un gros texteoù, je ne sais pas, vous récupérez...
00:30:08 :Par exemple, si vous faites du Django,vous avez plein de fichiers HTMLet vous vous rendez compte que,je ne sais pas, vous avez fait une bêtisedans vos URLs, si vous avez hardcodé vos URLsou des choses comme ça,et que vous voulez remplacer rapidement,et que vous avez plusieurs remplacements
00:30:24 :différents à faire dans vos fichiers HTMLd'un coup, vous pouvez le faire avec ça.Avec cette méthode-là.Voilà, je pensais à ça parce qu'il y aune question cet après-midi de Céline.
00:30:39 :Je ne sais pas si elle est là, je ne pense pas.Mais je trouve que c'est intéressantet ça peut être vachement pratique.Est-ce que ça vous va si je passe à autre chose?
00:30:53 :Dites-moi dans le chat.J'ai des autres sujets.Dites-moi les que vous préférez.Soit on parle un peu de la mesurede complexité d'un algorithme.On va essayer de faire ça simplementet synthétiquement.
00:31:14 :Ou sinon, je peux vous montrer la classeavec l'héritage.Dites-moi ce que vous préférez voir.Tu es, Gabriel, héritage.De toute façon, je pense qu'on peut voir les deux.
00:31:37 :Je peux passer vite sur celle-là.Je suis classe.Je ne vais pas la recoder devant vous.Ça ne sert à rien.C'est juste pour vous montrer un peu.
00:31:57 :Souvent, quand on voit la programmationorientée objet et les classes,on nous explique les classes,mais parfois, on ne sait pas trop pourquoi.On nous explique.
00:32:13 :Je fais l'exemple souvent qu'on voit.J'ai une classe animal et j'ai une classe chatqui hérite de animal.En fait, le bitfacer...Ça marche. Je parlerai de ça juste après.
00:32:34 :Un pot de trading...J'ai plein d'idées.Une classe et un moule pour créer un objet.Exactement, c'est une bonne analogie.Je reviens juste.Je ferai le if main après.
00:32:50 :Comment créer un pot de trading?Là, vraiment, c'est...Pour pouvoir y arriver, simple parenthèse.Je retiens les questions juste aprèscette classe-là et vous me le rappelezsi jamais j'oublie.
00:33:04 :Quand on voit l'héritage, souvent,on pense à...Animal, mammifère, etc.On dit qu'un mammifère, ça héritede la classe animal parce que c'estla même famille, etc.
00:33:20 :Mais au final, je ne suis pas sûr.J'ai jamais compris tant que j'ai paseu besoin de le faire moi-même.Donc là, juste, je vais vous montrer.
00:33:31 :En gros, je devais modéliserdans le cadre de mon boulot,le sol.Le sol sous-marin parce qu'il y avaitjuste pour le contexte, un pipequi repose sur le sol.
00:33:45 :Et le sol, il y a des crevasses,des montagnes, etc.Il faut qu'on ait la modélisation du solpour pouvoir savoir où on doitaller dessus. Bref, ça c'est juste
00:33:56 :pour le contexte, c'est pas important.Et du coup,il y a différents typesde...Sur le sol, il y a différents types.Il peut y avoir soit des...
00:34:10 :Ici, vous voyez, burial en anglais,c'est enterrement. Donc en fait, ça peutêtre une tranchée, par exemple.C'est-à-dire, on a creusé une tranchéeexprès pour faire passer le pipe dedans.
00:34:20 :Mais ça pourrait très bien être une montagne.Donc là, la tranchée, ça a toujoursune forme un peu rectangulaire.Mais par exemple,on a aussi... Parfois, on dépose
00:34:30 :des graviers sur le sol,mais ces graviers sont déposéssuivant un cercle.Donc en gros, la forme, elle est différente.Et en gros, moi, ce que je voulais faire,c'est pouvoir...
00:34:42 :Donc ce que j'ai fait, j'ai d'abordcréé une classe qui est abstraiteici, parce qu'en fait, je m'en sersjamais de cette classe-là, mais elle mesert juste à définirdes fonctions qui sont communes,qui vont être communes àtous les typesdereliefs que je vais faire.
00:35:02 :Ici, moi, je vais faire unenterrement, donc je vais faire une tranchée.Elle va être rectangulaire, mais si après, je faispar exempleune montagne ou quoi,c'est la même chose, c'est juste que c'est pas la même géométrie.
00:35:14 :Mais par contre, toutes les méthodes que je vais utiliserdans ma montagne ou dansma tranchée, ça va être la même chose.Je vais devoir créer un maillage.
00:35:22 :Ici, donc, grid et mesh.Je vais vouloirla dessiner. Donc ça, en fait,la dessiner ou créer un maillage, c'est paspropre à est-ce que c'est une tranchée,est-ce que c'est une montagne.
00:35:34 :Donc vous voyez bien qu'en fait, c'est intéressantde d'abord créer une classe abstraitequi va rassembler ici toutes mes méthodesdont je vais me servir aprèspour mes différents types de classes.
00:35:44 :Doncvoilà, ici,je vais vous montrer, juste pour vous montrer ce qu'ellefait.Donc ici, vous voyezque pour définir ma classeabstraite, donc je définis ma classe, c'est-à-dire queon va pas rentrer dans le détail,ça sert à rien, mais en gros, je lui définisun peules... je vais englober
00:36:06 :le maillage de mon sol,c'est-à-dire que je vais lui donner ses valeurs extrêmes,x, y, ses coordonnées en fait.Et en gros, c'est à peu prèstout ce que je fais ici,donc là je la construis. Ici, c'est une méthode
00:36:18 :qui permet defaire le maillage à partir d'un contour.En fait, vous avezvous définissezattendez, je vais essayer de...bon non, ça sert à rien, je vais pas vous rentrer dans le détail,c'est de la data, on pourraen parler dans un autre cadre quand on ferala data, mais en gros, ça c'est pour créer
00:36:36 :un maillage à partir decoordonnées, c'est-à-dire que vous définissez juste lecontour d'un rectangle par exemple,et lui, le gridici, le mesh grid de NumPy, il vavous créer tous les points à l'intérieur.
00:36:48 :Donc ça,et ensuite, après je fais une méthodequi crée ce maillage,c'est pareil, on va pas rentrer dans le détail.On peut passer des... bah oui,
00:37:00 :tu peux tout faire.Tu peux, tu vois ici,tu retournes ton data frame,et après, moi mon data frame, je me le sers.En fait, moi mon data frame, c'est carrémentun attribut de ma classe,tu vois. Ici j'initialise,
00:37:14 :mais après,après moi je le mets à jour,etc.Ah bah non, en fait, ton data frame, tu peux...Ah oui, donc toi tu le stocks enfroid, dans unJSON, et après tu viens le lire. Tu peux le
00:37:30 :passer directement en argumentou en fonction, c'est un objet comme un autreen fait.Donc voilà,donc là je définis vraiment les méthodes qui vont me servir,quel que soit mon type detranchée, et après ici,vous voyez quand j'initialise, quand je fais mon constructeur,quand j'initialise mon constructeur
00:37:54 :de ma classe, qui hérite icide ma classe abstraite, vous voyez icije fais super.init,où en fait, là ça permet d'initialiserla classe abstraite, donc là je vais créer tout ce qu'il y adans ma classe ici,parent, etje vais lui-même faire,je vais lui appliquer des méthodes qui sont dans ma classe
00:38:12 :parent, etc. Et après,ici, vous voyez que, en fait,ça va être uniquement cette méthode-là ici,generate,qui va différer en fonctionde, est-ce que c'est un enterrement,enfin quand je dis enterrement, c'est pas morbide,est-ce que c'est une tranchée, est-ce que c'est une tanne, etc.
00:38:30 :Et en fait, moi ça me permet ici, dansl'ensemble de mes classes, de pas redéfinir,vous voyez ici par exemple j'ai une fonction djo, qui permetde dessiner en 3Dmon relief, je vais pasà chaque fois redéfinir le draw,j'ai juste, vous voyez ici queje créema classe Burial, qui est la classe phi,
00:38:48 :qui a hérité de cbet,je le faisgenerate, mais ici par exemple,je peux faire Burial.djo,alors que j'ai jamais défini de méthodedjo dans ma classephi ici. Et en fait, vous voyez
00:39:04 :que c'est juste parce qu'elle apparaît commeelle est dans ma classe parente et que ici,j'initialise, et bien j'ai accèsen fait au même titre queici.
00:39:14 :Donc, je sais,j'espère qu'elle va marcher,de toute façon ici c'est pas le but de vous montrer ça,mais...Voilà, en fait,donc ça c'est mon...
00:39:36 :c'est ma tranchée, donc vous voyezça permet de visualiser,donc c'est un plot 3D que vous pouvezfaire avec ma plot libre,où en fait, ici ça va êtrela surface de mon sol,donc je définisles points qui correspondent à ça,et là j'ai défini tous les points
00:39:54 :qui correspondent à ma tranchée.Et après moi, dans le logiciel que j'utilise de modélisation,j'ai juste à y rentrer ces coordonnéesde points là, et après il me fait toutes lesinterpolations qu'il faut pour faireune tranchée, mais ça c'est propre à mon logicielde simulation, c'est pas...
00:40:08 :c'est pas le sujet ici.Voilà, c'était justepour vous montrer un cas pratiquedes tâches de classe, et je vois qu'il y a un commentaireil a pas suivi ta vidéo sur les métaclasses.
00:40:20 :Oui, bon après je pensequ'il y a des choses à améliorer,le...moi je meconsidère comme un développeurpragmatique,c'est à direje fais des choses qui répondentbien à mon besoin, je pense que des foisc'est peut-être pas dans les règles de l'art de Python,mais l'important c'est de faire des choses
00:40:45 :qui fonctionnent pour vous,que vous comprenez, et que...non mais je le prends pas mal,pas de souci, t'inquiète pas.Et que vous comprenez,et aussi que ensuiteau début en fait quand on fait la programmation,on pense pas à l'adaptationde après.
00:41:03 :Vous voyez, vous pouvez dire, pourquoi je me suis fait chierà faire des classes et tout ça,à faire plusieurs classesdifférentes, pour l'instant j'en ai qu'une seule.
00:41:11 :Mais en fait moi je pense àaprès adapter, pouvoir mon code.J'ai pas en fait cette classe là,la classe Sybel, la classe parent,je veux plus avoir à la modifier, moi je veux plus la toucher,j'ai plus envie de m'embêterà redéfinir une fonction qui va me dessiner
00:41:25 :en 3D mon truc.Donc une fois que je l'ai faite, voilà, je touche plus.Et je peux aller modifier ici ma classe,c'est à dire, si par exempleje fais plus une tranchée, je fais une montagne,bah en gros ça changera pas du toutla manière de faire le dessin, de faire le plot 3D.
00:41:39 :Donc c'est aussià ça qu'il faut penser quand onfait de la programmation, c'est faire des chosesqu'on peut adapter facilement après,qu'on peut débugger etessayer de faire le truc le plus robuste possible.
00:41:51 :C'est pour ça qu'il faut jamaisvous voyez ici,j'essayedans mes fonctions ou dans mes classesde jamaisen fait hardcoderquelque chose, ça veut dire que vous mettez un paramètreou une variable à l'intérieur d'une fonctionqui fait ici, vous voyez par exemplelà j'ai monz-zibet, donc en fait
00:42:15 :ça correspond à l'élévation de monsol sous-marin.Ici c'est moins, presquemoins 15 mètres.Même si je l'utilise qu'une seule foisdans tout mon script,je préfère le mettre ici en variableet parce que, je sais pas, là pour l'instantj'ai pas besoin de le faire varier, mais si jamais dans 3 semaines
00:42:33 :je reviens et qu'on me dit, bah ouais mais en fait le solc'est moins 16 mètres, bah je suissûr que si je le change ici, aprèsil ira se changer partout dans mes fonctions, dans mesclasses. Donc en gros c'est en ça que je
00:42:43 :dis, faut vraiment penser à l'adaptabilitéet puis àla robustesse de votre scriptetet voilà.Du coup il y avaitbon ça c'est pour les classes, pour l'héritage, est-ce queça vous parle, est-ce que c'estest-ce que vous voyez un peuce que je veux dire, après c'est
00:43:03 :si vous voulez, enfin les choses propres, etcvous les suivez sur docstringje dis pas que je fais pas les chosespropres, mais en gros j'essaye de suivreun maximum les règlesde programmationmaismais voilà.
00:43:19 :Du coup il y avait Vincent quidemandait, c'est quoi ça ceifname machintu connais ouVincent ou c'était justele cas d'utilisation.Une fonction c'est comment on mateouaismain function etje vais l'appelerje penseje suis en train de créer un exemplepour le ifmainmain
00:43:55 :moduleetsum moduledonc en gros main modulec'est le module principal etsum module c'est le module fils que je vais appelerdonc en gros je vaisdirebon ils sont sur le flouje vais faire un truc très simpleje vais dire oka égale 2b égale
00:44:21 :je vais essayer de faire un trucquand même intéressant sinonnumpy as npdt égalenp.range0 à 200 1 donc là en gros ce que je disc'estje vais vous dire en fait ce que je disrunmain moduleen fait j'ai juste avec np.range vous pouvez
00:44:47 :créervous créez moi une listequi varie de 0 jusqu'à 20 avecun pas de 0 1du coup là vous voyez en fait il m'a créérapidement à la volée donc j'ai unesuite de nombres quivarie de 0 à 20 avec un pas de 0 1bref on s'en fiche
00:45:09 :on va dire qu'on va définirune fonctioncosinus je ne sais rien en maths je ne sais pas si vous vous souvenezdans cette fonction là parce que ça faitpartie d'un exemple que je fais aprèscosinusdt 01dt oket imaginons que vous ditesvous faites je vais faire un graph
00:45:35 :importmatplotlib.pyplotas pltdonc ça c'est pour faire des graph et vous ditesici plt.plotttyet plt.showdonc là c'estvotre script principalje vaisdéfinir quand même une fonctiondef defineprofileoket on va faire çaje faisretourn ttyet donc là vous ditestty
00:46:19 :define profiledonc en gros là vous imaginez que vouscréez une fonctionici define profilequi va faire cettesérie là et qui va mettrele cosinus dutemps bref on soiton fait ce qu'on veutdonc ici vous ditesj'ai créé cette fonction donc làvous voyez qu'il retourne un tuplé
00:46:43 :tty et ici vous ditesvas-y créez les moiet donc si vous faites ça vous faitesrain module donc là vous avez unmorceau on va aller plus loinok donc là j'ai créé une fonction cosinusvous voyez en fait j'ai plusieurs périodesdonc là vous êtes contentimaginez que là maintenant vous allez dans un
00:47:09 :module fizz et vous ditesj'aimerais bienattendez ici qu'est ce qu'on a faitj'aimerais bien justefaire un printje vais faire un importdefinevous dites bah en fait j'ai besoinded'une fonction que j'ai définiedans mon main moduleimport define profileet donc là à cet endroit là
00:47:35 :vous pouvez en faire un en fait ici on va changeron va mettre omégaoméga parce que sinonça a moins de senset là vous dites omégale gmx2 okdonc là si je le faisça continue de fonctionneret donc vous dites bah j'aimerais bien me servir de ma fonction
00:47:53 :define profil qui est dans mon main moduleà partir de mon module sun et pouren faire une autre en faitprofil mais là vous mettez un autreparamètre vous mettez 3 et en faitvous ne voulez pas faire le printvous voulez juste faire un printy par exemple vous même
00:48:13 :avec ce qui est pas malavec numpy c'est que vous pouvez direje veux le mettre au cubeet bah en fait ici maintenant si vous faitesrun sunmodule bah en faitvous voyez qu'il vous fait un plotde il vous faitle plot de votredu module principal alors qu'en fait
00:48:33 :vous ne l'avez pas demandé et après il vous affichece que vous avez demandé mais du coupc'est un peu chiant parce que ça veut dire quesi vous définissez un module principalet que vous mettez vos actionscomme ça dans le scriptdès que vous allez l'importeren fait ailleurs et bah il va
00:48:49 :il va exécuter tout ce qui se passe là dedanset du coup la marcheà suivre bah c'est le fameuxif namename égalemain et en faittout l'action de votre scriptj'appelle ça l'action mais en faitici c'est un peu abstrait c'est à direque vous définissez vos fonctions mais que vous faites rien
00:49:13 :c'est juste à partir de cet endroit là où vous lesappliquez oket donc ce que vous faiteslà c'est vous faitesmaintenant si je vaisici et que je fais runsun module vous voyez qu'il va juste me fairele printce que je lui ai demandé en fait il va pas
00:49:31 :il va aller quand même me chercherla formule mais tout ce qu'il y a dans leif name égale égale mainen fait c'est comme siici vous restreignez la portéede votre script au fichier lui mêmeparce qu'en faitvous voulez pas que ça s'appliquequand vous l'importez vous, vous voulez juste
00:49:49 :votre fonction et la réutiliserpour faire autre chose avecdu coup voilà c'est çac'est à ça que sert le if namec'est pasla seule utilisationla seule raisonpour laquelle ça existe mais en tout cas c'est comme ça quela majorité des gens s'en sertest ce que c'est clair pour toi Vincent?
00:50:13 :je regarde un peu les messages du chatNumpit un module qui sert àtraiter des dataalors Numpitouais en fait c'est une librairie qui faitqui traite pour faire de la dataNumpitouais c'est ça traiter de la dataclasse, série de classe qui hérite de la classe
00:50:45 :du coup les objetsouais ok donc ça c'étaitWilly qui mettait des compléments surl'héritagevoilàok est ce que c'est bon pour vousavez des questions sinon je peux passer à la suitesalut Arnoldil n'y a pas de soucisest ce que j'avais préparé un petit exercice
00:51:11 :enfin pas un exercice un petittruc surturtle le moduleje ne sais pas si tous ceux qui sont icin'ont pas de questionsj'avais cru lire la questionest ce que ça vous intéresse de voir ce moduleturtle ou vous préférez voirla complexité d'algorithmetu ne le connais pas pour
00:51:39 :turtle?tu préférais turtleou blazeok c'est parti pour turtleje ne connais pas non plusalors en faitturtle c'estun trucc'est un module marrantqui permet de faire rapidementdes dessins avecTkinteralorson va repartir de zéroje vais vous montrer d'abord un peu le truc
00:52:15 :et puis je vous montre le script que j'avais faitvoilàne t'inquiète pas Ericle mentorat il sera rediffuséaprès l'enregistrementsera misok doncon va d'abordimporter le moduleimport turtleon va créer une instancede la classeest ce qu'il me l'affiche?
00:52:43 :oui voilàil me l'affiche par contreje vais le mettre comme çaokj'avais faitah oui t'as déjà fait çac'est comme si vous aviez un trucinteractif ici un espèce de petit objetqui va dessiner ce que vous voulezdonc si vous ditesvous avez plein de possibilités
00:53:13 :si vous dites par exemple go to100 200 en gros il vaaller au point 100 200en traçant un traiten fait il faut voir ça comme sic'était vous contrôliezla maind'un gars qui tient un styloet lui par desvous avez un stylo dans votre main
00:53:37 :que vous appuyez sur la feuille et que vous allezà un endroit spécifique vous vous rendez biencompte que vous allez écrire sur la feuilledonc si par exemple vous voulez aller à un endroit mais sansécrire vous pouvez faired pen upok donc là ça veut dire
00:53:51 :en gros je lève la main de la page et simaintenant je fais d.go toje vais jusqu'à200 mais je resteà200 en faitvous voyez il s'est déplacé sur la droitemais sans écrire parce que j'ai faitpen up en fait pen up en anglais ça veut dire
00:54:09 :je lève le stylo maintenant si je veux continuerà écrire je fais t.pen downdonc là il fait rien mais en faitil a réapplié sur le stylo et si je fais t.go to
00:54:21 :go toon va dire au 100et 100 il va revenirà sa position et donc en faitce que vous pouvez imaginer c'est quevous voyez on peut créer des fonctionsavec python donc en gros on peutmodéliser des chosesfaire apparaître des choses à l'écranavec des fonctions mathématiques par exemple ou avec
00:54:41 :des bouclesaprès je vais vous montrerc'est les coordonnées en fait tu dis 100 100c'est x y comme si tu voyaisici tatu voist'as un axedonc ici t'aurai les x et là t'aurai les yet en fait tu les définisx y donc 100 100 c'est
00:55:01 :coordonnées x 100et coordonnées y 100vous pouvez dire en faitje veux changer la couleurpar exemple je vous dis couleur reddonc là vous voyez le curseur il changeet si maintenant je fais t.forward
00:55:19 :forward c'est pour dire avance tout droitje veux que t'avances de 100 pixelsil avance de 100 pixelsexactement c'est quand onmontre la programmation pythonaux enfants c'est le premier truc qu'on montredu coup ce que je peux vous montrerce qu'on va faire c'est quand mêmeintéressant alors en fait moi
00:55:41 :j'ai définij'ai défini c'est comme si on définissait des montagnesdonc en fait j'ai utiliséla fonction cosinusje sais pas si vousle souvenez de vos cours de mathsou si vous l'utilisezen faitil y acosinus oui donc en grosici moi je définis juste une fonction cosinus
00:56:03 :donc là si je faisje vais pas lancer le trucje vais justesi je faissi je fais justerunnon je peux pas retourner dans l'épisodeouais moins un cos xc'est çaok donc si je faisrunturtledonc là en fait j'ai créé xxet yy
00:56:37 :qui sont en fait si je fais par exempleest ce que je l'ai emportéouais si je fais plt.plotttyy et que je faispltnon il ne prouve pasc'est xxxxet je fais pltdonc en fait j'ai bien tracéun cosinus donc là il varie pas entre
00:57:01 :moins un et un parce que j'ai mis un coefficientmultiplicateur devant vous voyezje fais amp fois cosinus etmon amplitude c'est 100donc en gros il varie pas de 1 à moins 1il varie de 100à plus 100donc là en fait j'ai défini mon cosinus avec une période
00:57:17 :de 200 donc la période c'est vraiment la répétabilitédu cosinusdonc là vous voyez que ce point là il est égal à celui làil est juste décalé de 100cos²1 plus sin²1plus sin²1 ouaisc'est la trigonométriede basedu coup on adonc moi ce que j'ai fait c'est j'ai créé cette montagne là
00:57:37 :et moi ce que j'aimerais bien faire c'estoui bahun peuce que je voudrais faire c'est imaginerun skieur ou quelqu'unqui marche, enfin qui ridele long de cette montagnedonc en gros on va essayer deimaginer ça et on va dire queje sais pas il est
00:58:03 :on prend le Y qu'il est positifparce que vous voyez ça varie entreun signe négatif et un signe positif on va direimaginons en fait sije suis au dessus de 0bah ça peut être par exempleon est endonc en fait on lui ditla vitesse ici c'est 10
00:58:25 :par contre si on est en dessous on peut se direque la pesanteur je sais pas elle devient plus importanteet du coup on veut que la vitesse elle soit plus inférieureet en plus on veut quequand on est au dessus la couleur est noireet quand on est en dessous la couleur est rouge
00:58:37 :et en fait ce que je fais ici c'est queon vautiliser la montagne qu'on a crééet on va parcourir chacun de ces pointset on vadire à chaque pointtu vas te déplacer au point que je veuxet vous voyez ici comme j'ai misun pen down et bah en fait il va
00:58:55 :il va dessiner le point que je veuxet puis il va adapter la vitesseen fonction de là où il est et en fonction de sa positiondonc jedécommente tout çaje le décaledonc vous voyez icihop il est en dessousdu coup il va plus vite, il est en bas il va moins vite
00:59:19 :et voilà donc en gros c'est un peuc'est un peupour vous montrer ce qu'on peut faire avecle module et l'associationde la vitessecomment on peutcoupler en fait des fonctionsmathématiques, donc là par exemple c'est juste un cosinusdonc c'est hyper simpleet comment on peut
00:59:45 :coupler en fait un module graphiquecomme turtle avec des fonctions qu'ondéfinit, avec des boucles, en fait vous voyeztout ce qu'onet j'essaye un peu de vousmontrer que tout ce qu'on apprend en programmationPython c'est pas de la purethéorie et juste pour fairedes choses, c'est vraiment
01:00:03 :pour, ça fait des cas pratiquesbon après j'imagine quevous le savez, je vous apprends rienmais ça sert à plein de chosesla programmation, ça sert en sciences physiques, ça sert en mathet vous voyez qu'avec un petit peu de mathon peut faire des choses assez sympas
01:00:21 :en modélisationvoilàpour leturtle, ce que je voulaisvous montreret par exemple ici vous pouvez direque vous voulez tout effacer, donc faitest.clear et vous pouvez dire
01:00:39 :mais là vous voyez que j'avais pas fait pen updu coup il m'a tracé un traitcomme un cochonvoilàje crois queil y avait une questionde Gabrielsurleexercice de tri de fichierouais par exemple, je vais être chiant maisnon non t'es pas chiant
01:01:11 :ouaisj'ai répondudans la questionouaisest-ce que ça te dérange si je l'affichenon vas-yjustement j'aimerais bien réussir à le terminer làparce que je pense que j'ai quasiment fini en faitokça me fait chier de galérer là dessusde fichiertu vois le ventral qui boule a répondu
01:01:35 :ouais okalors je sais pasce qu'il avait dit mais apparemmentj'ai fini quasiment quoiouais et du coup c'est quoi ton terraintu vois mon déplacementj'arrive pas à faire lele déplacement en faitdu mes fichiers dans le dossierje sais pas comment le faireje comprends pas en fait
01:01:57 :alorsnon dis pas çaalors qu'est-ce que tu fais iciattends je vais démarreren fait icitu crées ton dossieroui ça c'est bon ouaisça fonctionne y'a pas de problèmec'est après je sais pas comment déplacerles fichiersdans le dossier musiquebah en faitça je l'écrive
01:02:27 :comment en fait tu vois parce que j'ai fait for faildonc Thibaut m'avait dit faut qu'il fasse un for failet musique en groset chaque fichier du coup après se déplacedans le dossier musiquej'ai mis fail rename entre parenthèse dossier musiqueje pensais que ça marchait comme ça mais apparemment non
01:02:41 :rename dossier musiquec'est pas simais donc c'est tout à fait la bibliothèque passe libre quoipourquoi ilbah ouais mais en fait nonlà ça va pasparce qu'en fait ce que tu faisc'est quedéjà en tout caslà pour ce genre de scriptqui commence à avoir des boucles imbriquées etc
01:03:09 :je ne peux que vivementte conseiller le debugger comme ça tu mets tes points d'arrêtà différents endroitset tu vois où est ce que t'en esle grand script là que j'ai mistout ça ça fonctionneouais ouaisici tu vois qu'en fait ce que tu fais c'est que
01:03:25 :tudossier musique c'est quelque chose qui esttu définis quelque chosetu lui définis un nom de passemais tu vois que ce truc là il est constanten fait ce truc là il va pas bougertant que tutu vois tu fais for file in musicdoncune musique ça j'imagine c'est une liste
01:03:45 :musiqueouais quand tu regardes dans le scriptgénéral il y a en faitsi tu vois ma liste est bien parce que du coup j'ai en faittous mesmes types de fichiers sont mis dans la liste à chaque foisdonc j'ai ma liste vidéo, ma liste musiquema liste images etc
01:04:01 :ça par contre ta conditionde discussion if techniqueest pas très biensi je peux me permettre parce qu'en faitça ça va toujours être vrai même si ta liste est videça va être vrai que ça tu te souviens on avaitdiscuté une fois du false et machin
01:04:19 :et en faitje sais pas je vais essayerouais regarde oui oui normalement c'est bon çaregarde làTibo il en parle dans sa réponsesi je faistu vois si je crée une listequi est videouaiset si je fais listif listprinthelloah non pardon
01:04:49 :excuse moi t'as raisonça fonctionneje pensais qu'en fait il allait te mettrelistdégagénonen fait moi je fais plutôtpour être sûrje fais plutôt if listtu sais length listlength liston avait vu on l'avait faitje te conseille plutôt de faire çaen tout cas peut être que ça fonctionne
01:05:17 :là mais je te conseille plutôt de faire ce genre de trucquand tu utilises les listes parce quedes fois moi j'ai déjà vu des comportementsbizarres avec çaet je me dis que si j'avais fait comme toiif length listje suis dans la productiontibo il fait directement if list en gros
01:05:33 :moi je te dis fais attention à çapeut être qu'il y a une mise à jourmais là en fait ton problème c'est quepeut être que ça marcheton trucmais en fait tu vasimagine ta listemusique elle est pas videokdonc imagine ta listemetal
01:05:55 :hip hop et countryokdonc en fait il va dire profile in musicil va dire le premier va se retrouverà metalet il va renommerle metalen çaparce que tu lui dis renamedossier musique que tu as défini iciokaprès quand il va arriver
01:06:19 :à hip hop au deuxième élément de ta listeet bah il va faire pareilil va renommer ce fichiercomme ça et en fait il va écraseren fait ton nom de fichieril doit varier parce que là c'est une constanteton nom de fichier quel que soitou qu'il soit dans ta boucle
01:06:35 :attends je vais essayer de te faire un exempleet puis on vaon va utiliser le debuggerça va êtreune pierre de coupen fait mon exercice il est complètement terminéje suis sur la fin non?
01:06:49 :j'arrive pas à le terminerlà ce que tu fais c'est que tu écrasesdonc c'est normaldossier musiqueje vais pas faire le truc en vraimoi je vais juste faire avec des stringsmais tu verras que c'est pareildonc là en fait ce que tu as fait c'est que
01:07:05 :tu as défini tonton passnamedonc c'est bla bla blaet ça termine par musiqueouais c'est çaon va dire passfolderdonc tu es d'accord avec moi que ce que tu as définiicic'est bien quelque chose qui varie pasouais parce que ça c'est un dossier musique
01:07:27 :c'est mon dossier musique en faitouaismais du coup c'est unt'as juste rentré une chaîne de caractèreet ici tu dis for file inmusiquec'est ma liste avec mes fichiersdonc on va dire je sais pas si t'écoutes duCéline Diondu Lara Fabianet puis du Garou
01:07:53 :quoi que ce soitdonc imaginonsque......t'es là dedansjuste liste musiqueet donc en fait ce que tu fais avant de fairelà ce que tu faisexactementtu vasc'est comme si tu faisaisprint dossier musique en faittu vois ce que tu fais là
01:08:23 :je vais pas faire un rename parce queje vais pas faire un renameparce que sinon je vais tout couririci mais est-ce que t'es d'accordavec moi que ce que tu fais làfile rename dossier musiquedossier musique c'est une constantedu coup qu'est le possible que tu sois dans ta liste
01:08:39 :tu vois si j'applique le debugger..................pourtantregarde tu vois en faitoù que je sois dans ma liste tu vois si je continue les itérations...
01:09:01 :.........pourtant j'ai lu l'article du volet versiveauet tout mais je sais pasregarde tu vois là je vais aller à une itérationsuivante donc là je suisà file Céline Dion il va direil printdossier musique donc en fait tu printsta variable constante quel que soit en fait
01:09:23 :le nom de ton fichier tu vois à chaque foisil va faire la même chose il va afficherpassfolder musique parce que c'est letu lui dis un truc constanten faitil va te créer un dossieret il va te l'écrireà chaque fois à chaque itération donc en fait
01:09:39 :si tu voulais faire un joinil faut que tu fassesun join moi j'utilise encorele module os maisil faut vraiment que tu mettestu adapterasavec le pass libresinon Thibaut il va péteravec le os je crois que je sais le fairej'ai réussi mais avec le pass je n'arrive pas à le passer
01:09:59 :mais c'est la même chose en fait tu dois faire un joindonc là tu vas mettre tondossier musique et tu vas lui direle fileet en fait là maintenantsi tu faisnew filenamele machindonc là tu vois si je relance mon débuggeuril est débugé
01:10:23 :maintenant tu vois normalement ça va fonctionnersi j'arriveà une itération suivante mon new filenameil s'appelle passfolder musiquec'est l'indion après il s'appellela rafabiendonc je join mon dossier musiquema constante dossier musiqueje join avec le nom de mon fichierexactementc'est ça okle file rename
01:10:49 :je ne sais pas si il y a la syntaxe du file renamemoi je diraisattend il est où ton file renameen fait tu as juste à faire çatu peux faire un fstringmoi je fais ça à ta placecomme çaet là tu metset puis là tu mets
01:11:09 :filedonc en faitattend je me suis trompé icidonc dossier musique et moi je peux mettre la variabledirectement ok c'est çatu metstu connais les fstringsoui oui ouidonc tu mets ta variable dossier musiquequi elle ne va jamais changer c'est un dossierouaiset donc en fait tous tes fichiers musique
01:11:43 :vont arriver dans ce truc làdonc en fait là je suis quasiment donné la solutionc'est un truc comme ça en faitoui c'est çaaprès j'ai juste vu un petit boutc'est le truc làce bout de codeje vais en même temps je vaisje peux l'envoyer dans le chat
01:12:03 :je vais travailler dessusbien sur bien surattend est ce quetu sais quandVS Code il t'écrit un peuon dirait une auto compétitionon appelle ça quand ondes fois ça ne le fait pas des fois nondes fois en fait il appelleun serveur et des fois il perd la connexion au serveur
01:12:29 :tu le renèves ça ne te l'a pas faitje crois pas moi non plus donc c'est normalça peut arriverouais en faitmoi c'est parce que je suis sur coest et toisur passlibcomme si je ne trouvais pas ça qui est bizarrepourtant je l'ai passlibouais je t'avoue que passlib je l'ai peu j'utilise pas
01:12:51 :je suis resté sur coest et passet pourquoi on utilise plus passlib que OSRsi c'est mieuxje pense qu'il faut switcherde toute façon c'est ce que Thibautconseille de faireje pense qu'il faut continueril faut apprendre passlibil va devenir obsolète OSRmais en fait ouais il ne te manquait pas grand chose
01:13:19 :il faut juste que tuque tu mettesen variable ton nom de dossierparce que sinonje le mets en variableet si ça ne marche pas tu continues à poser des questionsbah ouaisça me fait à mon fieu encoreje me saoule de ne pas y arriver
01:13:43 :je te jure ça me gonflec'est normal mais c'est bien de prendre ça passionnémentah bah ouais j'aimerais biensinonon sert entre guillemets l'activité sur mon sitemerci Annex bonne soiréedonc on peut faire çaessaye ça et si ça va pastu reviensnon parce que tu vas avoir besoin
01:14:15 :de faire un join quelque partil faut quand même que tu associesque tu combineset que tu complicesle slash du coupfaut que je le mette dans l'autre sensou peut être nonvaut mieux le mettre dans l'autre sensje trouve qu'on a un doublemais essaye comme ça
01:14:37 :je vais essayer làokon va désoléc'est pas du tout une perte de tempsc'est fait pour ça les sessions de mentoratbah ouais les autresest ce que vous avez des questionsdu coup on a pas parléde ces histoires de complexité d'algorithmemais je pense que ça fait assez de maths
01:15:03 :pour ce soirau moins que vous vouliez en parlerpar contre j'ai pas perduon va voir ça la prochaine foisdu coup Célinec'était toi qui avait posé la questiondésolé Erict'as prise Gabriel chez toi aussiou pas le son?
01:15:33 :là ça va c'est bonc'est toi où on en estc'est toi qui avait posé une questionje crois au début surlesméthodes MEC30et TranslateCélineest ce que tu as vu la réponse que je t'ai faiteon m'entend làouais on t'entenddu coup ce sera plus simple
01:16:01 :je vais me reposersur la réponse c'est pour ça que je l'ai pas encoremarqué comme résoluparce queje voulais me poser dessus d'abordje me suis pas bien poséet'inquièteil n'y a pas de soucistu regardes et est ce que tu veux qu'on en parle maintenant
01:16:25 :je pense que je vais d'abord me mettredans mon coin et bien la tricouiller dans tous les senset continuer à garder des exemplesparce que j'en ai regardé à peu près partoutet en fait à chaque foisje me dis mais c'est pas possible je comprends pasdésolé
01:16:39 :ça veut pas rentrerdonc là avec ton explication je pense que je vais refaire un tour dessusbien me poserdéjà j'ai trouvé toute seule que ça renvoyait des codes assisdonc j'ai pas eu encorel'instant révélation dessusmais du coup j'en ai parlé là au début de la session
01:16:59 :de mentora du coup tu pourras peut être regarderla rediffusionouais c'est prévu parce que j'arrive en retard là je suis désoléebon pas de soucistu vois il y a eu Tertelsur l'exemple de Flapplerj'avais aussibeaucoup de mal à me projeterà l'utilisation de la méthode moi je me suis dit bon à part
01:17:21 :pour m'amuser à coder des phrasesou les décoderje voyais pasl'intérêt de l'utiliser mais j'ai quand même enviede savoir à quoi elle sert et commentà quoi ça sert en fait c'est surtoutdu coup j'en ai parlé pendant le trucc'est si jamais tu veux remplacerdans un texte des mots
01:17:39 :à la volée et que tu veux pas les fairetu peux faire des correspondancesen fait ou tu peux carrément remplacer des motsimagine que t'ast'as tapé un texte par exempleet tu veuxparce qu'en fait tu peux cette méthode làtu peux l'appliquer sur pas forcément un mot
01:17:55 :ou une phrase tu peux l'appliquer sur un texte en entierparce qu'un texte en entier c'est juste c'est pareilc'est une chaîne de caractèreet si tu te rends compte que t'as faitune connerie à un mot que tu as répétéplusieurs fois, t'as écrit je sais pasliberté avec un E
01:18:09 :et bah en faittu peuxremplacer le code ASCIIde liberté parpar la bonne orthographede liberté. Ok, modifier toutes lesoccurrences d'un coup. Voilà exactement
01:18:23 :tu peux tout modifier. Ah bah on me ditvoilà que y'a un exemple en début devidéo. Ouais ouais tu peux regarderen fait faut que tu décomposes bien ce qu'il faitparce que c'est vrai que si tu regardes tout d'un coupc'est un peu dur à comprendre ce qu'il fait le mec trans
01:18:35 :et dis toi aussi que le mec transil est toujours associé à du translate, le mec transen lui-même il sert à rien. Ouaisdonc c'est pour faire de la translationaprès. Ok
01:18:45 :bah merci beaucoup je regarderai çaà tête reposée tranquillement. Avecplaisir. MerciAh du coup Gabrielt'as réussi en live.Si ce que ça me semblait il fallait pasen fait j'ai enlevéle... attends je te le taxe. Regarde
01:19:05 :Ouais bah ok. Du coup c'est çaque te permet faire passlib en fait tu voisjuste traiterdes nomsqui sont des chaînes de caractèremais juste comme si c'étaitdes objets. Ça tu peux le faire avec
01:19:23 :passlib tu peux pas faire ça avec OSmais du coup c'est çaqui est... en fait il te manquait que ça. Avec OSen fait c'est plus compliqué de faire ça, je me semble j'arrive.
01:19:31 :C'est un peu plus galèretu dois faire OS.pass.javJ'avais déjà fait çaavec... au tout début de la formationon en parle, enfin Thibault il en parlesur çaet bah je vais finir ça avecc'est le principeau final je fais la question et puis on voitsi ça plaît, si ça va
01:19:55 :nickel. Bon bah merciparce que ça ne m'avait rien monté. Ouais bahavec plaisir. Je fais ça et tu l'arrêtes pour toiOkBon bahest-ce que vous avezd'autres questions?
01:20:11 :Dernière question méthodologique qui va êtretrès rapide à répondre pour toi, justelà dans ma formation doncje vois plusieurs étapes, en a je suis arrivé au transfertd'avoir des trucs un peu plus compliqués qu'avantest-ce que des fois tu dis t'arrêtes et je m'arrête, c'est ce que je fais souvent
01:20:29 :je m'arrête là, là genre j'arrête là pour ce soiret puis ce week-end je révise tout ce que j'ai vu jusqu'à maintenanttu vois dire bien intégréc'est comment toi?
01:20:37 :En fait je pensequ'il faut pas avoirc'est comme ça que ça fonctionne, aprèsça peut être différent pour tout le monde maisle code et la programmationc'est beaucoup moins académique que ce qu'oncomme histoire géo, mathen fait c'est pas un truc que t'apprends et puis que
01:20:57 :tu retienset puis tu dis ah oui je me rappelleil faut vraiment pratiquer à mortc'est vraiment queen fait je pense que c'est plus important la pratiqueque l'apprentissage parce quemoi tu vois quand je fais des trucsje connais pas tous les trucs par cœuret ça sert à rien, t'as les docs
01:21:15 :qui sont disponibles etc. faut juste un peuréfléchir, essayer dechanger ta manière de penser et de bienl'organiser, tu vois tu découpes en fonctionetc. et ça c'est en pratiquant
01:21:25 :et en faisanttes propres projets, tu vois làdéjà t'as la triège de fichiersça te fait travailler lespass-livres et le machinmais il faut aussi que t'essayes, si tu veux progresserc'est comme ça que moi j'ai progresséen faisant tes propres projetsen répondant à tes propres problèmes
01:21:43 :ah c'est ça c'est clairparce qu'en fait si tu suisdes projets qu'on te dit de faireça va moins bien rentrer......c'est obligatoire, alors que si tu fais la démarcheintellectuelle de dire comment je peux le résoudretu vas te casser la tête, tu vas te casser les dents
01:22:01 :au dessus et tout ça ettu vas te poser des questions et machin et c'est comme ça que tu vasmieux le progresserpour l'instant, t'avais quoi comme problème par exemple?
01:22:09 :bentu vois je suis d'accord avec ce que Benoît a ditqu'est-ce que j'avais comme problèmeben en fait moi j'avaisau tout débutdans le cadre de monboulot je faisais des simulations numériqueset je me retrouvais avec des dossiersoù j'avais 10 000 fichiers dans le dossier
01:22:29 :tu voiset j'avais juste besoindans chacun de ces fichiers j'avais juste besoin d'une valeurqui était à une certaine ligne dans le fichierelle était toujours à la même ligne, au même endroit, c'était juste une valeur différenteen fonction du caset du coupje me suis dit
01:22:45 :le premier problème c'est comment on fait pour ouvrirun fichier avec Pythonet comment?je fais une bourse, aprèsje fais comment parce qu'en faitchaque fichier il peut être dans un dossier différentdonc j'apprends pas sien fait tu vois c'est étape par étapetu déconstruis un peu ton problème
01:23:07 :et tuavances comme çaen fait maintenantje sais pas depuis combien de temps tu fais de la programmationça fait un mois là je croisdonc en fait tu voisil y a un mois tu savais pasla puissance et tu connaissais pas tout ce que pouvait faire Python
01:23:23 :donc forcément tu avais pasen tête ce que tu peux fairemais maintenantpeut être je sais pas je dis une bêtiseje t'ai montré comment on faitun graph en 3Dpeut être que dans deux semaines tu vas direputain j'aije sais pas je suis en train
01:23:41 :de refaire ma cuisine et puis j'aimeraisvoir en 3Doù est-ce qu'ils vont arriver les coins de ma tableet tu veux le visualiserpar rapport à ton meubletu vas dire ah bah tiensje me souviens avoir vu le plot 3Ddonc du coup tu vas essayer de faire toi même
01:23:57 :un plan 3D avectu vas regarder la distanceenfin je sais pas tu vois je te dis une bêtisemais je penseque ça sert à rien de se bourreren fait ça va juste le revoir, le regarderhonnêtement pour moi ça a zéro valeur defranchementil faut que tu
01:24:19 :après c'est sûr c'est importantde voirc'est important de relire les coursde comprendre les concepts etcmais une fois que tu les as vu pour moi aller les reliresans le pratiquer pour moi je pense quec'est presque une perte de tempscomme ça que moi je peux peut être
01:24:41 :je me referais des petits exemples avant tout çapour voir si j'ai bien compris comment on faisait et toutdéjà je trouve que c'est déjà biende faire çaouais ouais okc'est mon boulot c'est Excel Excel Excelà mort c'est vraiment Excel à fonddéjà peut être que tu pourrais te dire
01:24:57 :tout ce que tu fais dans Excel comment tu le ferais dans Pythonj'ai déjà utilisé un petit peu Pandaen fait j'ai connu vraiment Python grâce àPandaavant Python en faitj'ai fait une vidéo comme çasur Excel et je vois un mec qui utilisaitla Timbo qui utilisait ça sur
01:25:15 :les vidéos Youtube je me suis dis c'est marrant ce qu'il fait j'ai essayéc'est coolet après j'ai mis ça dans un compte CPS et je vais faire çaouais bah t'as bien fait je pensemaismais ouais voilà en fait il faut vraimentpratiquer un maximum etet ça va
01:25:31 :venir en fait maintenant que tu sais ce quetu peux faire enfin il y a quelqu'un qui disaitla théorie c'est bienparce que ça permet de savoir que ça existedonc c'est pour ça qu'il faut continuer à regarder les courset machin et mais aprèsc'est la pratique qui va te faire progresser
01:25:45 :faire tes propres projets à toiet ouais là je vais réfléchirà des petits problèmesfinalement chez moi sur un ptje sais pas par exemple là tontableau de fichier tu peux t'en servir pour rangertous les fichiers dans tondossier de téléchargement par exemplec'est ce que je vais faire du coup mais c'est pas con
01:26:03 :je vais m'en servir pour ça du coupvoilà puis après tu vastu vas peut être vouloir l'adaptertu vas peut être diretu vas aussi vouloir créer des dossiers partu vois dans ton dossiermusiqueouaisdans un fichier musiquet'as des librairies python qui te permettent d'aller chercher
01:26:23 :des données, des métadonnées en faitou t'as parfoisla duréela durée de lamusique en fait ça c'est une métadonnéeà laquelle tu peux accéder avec une librairie pythonah oket tu peux vouloir les trierje sais pas tu veux faire des sous dossiersdans lequel tu vas mettre les grosses vidéos
01:26:43 :les moyennes, les petitestu vois tu peux penser à ce genre d'updatemais ça c'est dans les dossiers json non?c'est quoi?les métadonnées elles sont mises dans les dossiers json non ou pas?
01:26:53 :elles sont peut être sous un formatjson mais ça peut être un autregoogle peut être comme ça dans la photosur la chaque page t'as la photo et le json qui est à cotéc'est ça ouaispour les musiques je sais pas comment ça fonctionnesi c'est pareil ou pas mais j'imagine que c'est possible
01:27:07 :regarde surgoogle comment tu fais pourextraire le tempsd'une vidéo ou tu peux mêmefaire la taille facilement enfin breft'as plein d'applications quoiau pire faut faire comme ça parce quej'aurais bien réussi à faire la même chosemais c'est pas facilec'est pas facile maistu dis ça fait qu'un mois et tu fais déjà des choses
01:27:29 :pas mal quand mêmeouais ouais mais en fait quand j'avais 15-16j'ai appris un peu le HTML CSS et le PHPj'ai arrêté là parce que j'avais peur des mathsoket du coup j'ai arrêté et en faitpour moi c'était à la base un rêve d'ado de pouvoir faire ma programmation
01:27:43 :et là je me suis remis à pas longtemps justementgrâce à mon cpf et j'ai un potequi bosse là dedansje crois que tu connais ciddu0si si je connais bien openpestc'est un meilleur pote lui qui a fait cdcmathieu nebranon c'est Nicolas le peintreciddu0
01:28:01 :pas ciddu0comment ça s'appelleles joies du codeah les joies du code sur twitteroui voilàil est encore venu chez moiil y a un an il est revenuon a fait une histoire ensembleon était en études ensembleil me connait pasje le connais pas mais passe lui un bonjour
01:28:23 :de ma part je rigole bien à chaque posttwitter que je voisje suis fan de ses memesje les collectionneah ouaisil est cool on était en études ensemblequ'est ce qu'on va faire comme connaissepasse luiun big up de notre partlui par exemple il maitrise
01:28:43 :plein de langages de prononciation différentson en parlait quand la week end dernieril disait j'utilise le PHP le Python le machinil maitrise plein de langagesouais bah aprèsc'est commele site il est fait en Python, Djangomais il maitrise aussi le HTML, le CSSj'imagine d'autres librairies
01:29:01 :après c'est des gensc'est leur métier aussifaut pasj'espère que tu dis pas çaparce que tu te décourages par rapport à ce queles gens fontchacun son niveaut'as un mois de programmationc'est rienc'est tout nouveaudoncYann qui ditdu mal àintégrer certains principes de Python
01:29:29 :après 4 mois de théorie, quel genre de principetu trouves du mal à intégrer?orienter objeten faitorienter objet c'est pareilje trouvevraiment c'est un cas typiquesi tu fais que de la théorieorienter objettu auras du malà l'intégrer en faitfaut vraiment que tu vois
01:29:59 :des objets commeune usineen fait quand tu crées une classec'est une usineà créer des objetsen fait c'est toi mêmequi définis, qui design ton usinepour commenttu veux créer ton objetet en fait t'as des classesqui existent déjà sur Pythonpar exemple les entiers, les ints
01:30:23 :les strings etc c'est des classes quePython a déjàprogrammé, mais toi tu peux créer tes propres classesdonc en faitil faut que tu vois çacomme une usinec'est toi qui construit l'usinetu sais quel objet tu veux faireà ton usine, donc tu construis ton usine
01:30:41 :en lui disant je veux que tu construisesmes objets de cette manière là, je veux quitter cette taille làcette couleur là etcet tu peux construire ce que tu veuxtu peux dire je veux construireune usine de voituredonc là tu vas faire une classe voituretu vas dire je veux que mes roues
01:30:57 :elles aient 3 mètres de diamètreparce que tu fais ce que tu veux, c'est ton usinec'est ta voiture, donc en grospour moi l'orienter objetc'est vraiment çac'est la capacité de créer ses propresobjets, viser les comportements quetoi tu souhaiteset tu fais ce que tu veux
01:31:15 :en fait, c'est ça la beauté de la programmationorienter objet, c'est que tu peuxla seule limite c'est ton imaginationaprès des analogiesil y en a beaucoupmais c'est comme ça que moi je le voisça moi je l'ai appris avec les voitures aussiet c'était plus facile de le faire
01:31:35 :justement l'histoire des concessionnairesles fabricants tout çade l'orienter objetouaisben ouais après tuje pense que tu as plein demais c'est vrai que l'usinevoir ça comme une usinequi sort des objets c'est l'exemplele plus parlantune classe versus un dicte quand tu n'utilises pas
01:31:59 :de fonction est-ce utile?l'utilité d'une classeversus un dicte quand tu n'utilises pas de fonctionbenen faitil fautsavoir adapterton script à ton besoinje suis d'accord queil ne faut pasréinventer la roueparce qu'en fait si par exempletu as besoin des méthodes qui existent pour le dictionnaire
01:32:25 :ça ne sert à rien de faire une classe qui vafaire les mêmes méthodes, elles serontbeaucoup plus optimales sur ce qui existedéjàdonc en faitpour voir l'utilité d'une classeversus un dicte quand tu n'utilises pas de fonctionma réponse c'estil n'y a pas d'utilité en fait
01:32:45 :si tu as juste besoin de ce que fait un dictionnairepourquoi t'embêter à recréer une classeou une fonction? En fait une classec'est vraiment quand tu as besoin de faire quelque chosede très particulierqui n'existe pas ou qui ne correspond pasvraiment à ton besoin ou à la
01:32:59 :manière dont toi tu voudrais le faire. Tu vois tout à l'heureje vous ai montré une classe que moi j'utilisaisbenj'aurais très bien pu utiliser des fonctionstu peuxdans Python n'importe quelle classe tu peux la remplacerque par des fonctions mais c'est quand même beaucoup plus pratique
01:33:13 :deles classes elles ont des attributsqui peuventconserver leur valeurque tu peux modifier c'est ça qui est intéressantavec les classes c'est que tu peux créer des objetsles objets ont des attributs que tu peux venirmodifier quand tu veux alors qu'une fonctionune fonction c'est pas le cas
01:33:31 :ça te retourne un résultat et le résultattu peux pas le modifieril est ce qu'il est, tu peux le modifier c'est à diretu peuxle transformer mais en gros tu peux pasmodifier ton objetsi tu par exemple imaginet'as une voituretu veux créer une voiture
01:33:49 :avecune fonctiondonc en fait tu vas créer une voituretu vas avoirta voiture et elle est rougeet toi tu dis j'aimerais bien que ma voiture elle soit bleueet en fait si t'as fait ta voiture avec une fonctionben pour que ta voiture elle soit bleue
01:34:05 :il va falloir que t'ailles au garagela repeindre etcc'est le cas où t'as utilisé une fonctionen revanche si toi t'as fait une classe pour créer ta voiturec'est comme si t'avais une usineet en fait si tu veux que ta voituremaintenant elle soit rougequ'elle soit bleue mais plus
01:34:21 :rouge et ben il suffit que t'ailles dans ton usineque tu modifiesun paramètre d'impressiontu modifies le pot de peinture que t'as sur la tabledans ton usine et là tu vas sortirdes voitures bleueset tu vois c'est un peu ça la différence entre classeet fonction c'est ça te permet de modifier
01:34:37 :les attributs les propriétésde ton objetc'est un peu comme çaque tu peux le voir la différenceentre les deuxje trouve que c'est une bonne réponselà Céline par rapportà la différence entre bouclefort et while ce qu'il faut savoirc'est queil n'y a aucune boucle while
01:35:03 :que tu ne peux pas faire en boucle fortdonc à partir de làsi t'es plus à l'aise avec les boucles fortcontinue à utiliser les boucles fortsi t'as du mal avec les boucleswhile pas de soucistu les utilises pas et voilà en fait il faut pas trop
01:35:17 :se prendre la têtec'est pour ça que moi j'aime bien être pragmatiquec'est à dire j'essaye de faire quelque chosequi répond à mon besoin si il les répondtrès bien c'est ce que je voulaismais sinon la réponse de Célinec'est clair en faitquand tu connais pas effectivement
01:35:35 :ton nombre d'itérationstu peux faire comme çamais moi c'est pareil je suis plus à l'aise avec les boucles fortles boucles while je les utilise quandvraimentquand il faut quoimais sinon pour l'esprit c'est clairc'est simple les boucles fortbon bah voilàj'espère queah oui le pot de trading
01:36:11 :merci de le rappelerta question c'est quoi qu'est ce qu'il faudraitpour faire un pot de trading des conseilsbah là il va falloir que tu aillesdansregarder le webscrapping ou en faitweb scrapping c'est aller récupérer des informationsautomatiquement sur des sites internetdonc ça c'est le premier truc
01:36:31 :que je pense qu'il faudrait avoir parce que ça vapermettre de récupérer beaucoup de databonne soirée uTurtlemercidonc tu récupères beaucoup de data avec le web scrappingdonc ça premier truc je penseensuite le second c'estPanda Numpy pour gérer la dataparce qu'en fait tu vas recevoir beaucoup de data
01:36:49 :donc avec ça tu peux faire des statistiquesetcet ensuitepour moi c'est machine learningen fait le trading c'estl'anticipationla spéculationet en faitt'as des algorithmes de machine learningqui sont déjà créés pouranticiper au mieux d'ailleurs y'a beaucoup de tradersqui leur métier c'est de développer
01:37:13 :des algorithmes de machine learning ou de les utiliserou de les optimiseret donc en fait pour moi c'est ces trois choses là que tu devraismaîtriser si tu veux faire dudu tradingdonc web scrapping pour récupérer la dataPanda Numpy pour traiter la dataet machine learning
01:37:29 :pour jouer avec la dataet puis pour anticiperen fonction des courbes que tu vas recevoirmais tu peuximplémenter une stratégie personnelleavec du machine learningen fait par exempletu vas pas aller t'embêter àrecréer une fonction de régression linéaireà plusieurs variablestu vas utiliser celle qui existe
01:37:51 :par contre comment toi tu l'utilisesça va être propre à ta stratégie personnelledonc moi c'est ce que je ferais si jamaisc'est le plan d'actionsi j'avais pu l'entreprendrepour l'utiliser sur un site je vais utiliser des APIça dépendtous les sitesne proposent pas d'APIdonc l'idéal c'est d'en avoir une
01:38:25 :il faut récupérer les clés d'API pour pouvoir l'utilisermais sinon t'as des donnéesqui sont publiques que tu peux récupérerdes données historiques en faitque tu peux récupérer sur le webmais le mieuxc'est de faire utiliserles APIdonc en plus dedans le web scrappingt'as les méthodes de request
01:38:47 :les get et tout çaqui te permettent d'interagir avec les datas disponiblesavec plaisirbon bah on va s'arrêter làpour aujourd'huije pense qu'on a un peu dépassé le timingah ouais il y a vachementça va vitebah écoute je passe un petit bonjour à mon pote
01:39:13 :pour toi du couptu peux lui direque apparemmentCéline aussi est fanje me souviens quand il avait créé çaen étant en études à la mienneil avait créé ça pour rigoleraprès ça a marché du fait de direque c'est très drôleokt'as un petit bonjour
01:39:37 :de mon mentorsur Doctream du coupt'es une start'es une vraie starbon bah merci à touset puis bonne soiréeet puis à la prochaineet puis n'hésitez pas à poser des questionsfranchement Gabrielc'est pas ça que je voulais diretu en poses beaucoup des questions
Aucune occurrence trouvée pour « ».