- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
Deviens membre Premium magic_button
Débloque cette session en devenant Membre Premium 🚀
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compte person00:00:00 :Donc maintenant qu'on a vu comment ajouter une tâche, on va essayer de supprimer une tâche.Donc pour ce faire je vais créer une autre fonction que je vais appeler removeTask eton va donner le nom de la tâche que l'on veut supprimer. La première chose à faire c'est tout
00:00:13 :d'abord de récupérer toutes les tâches qui sont contenues dans notre fichier. Donc on va faire lamême chose en fait que dans le addTask, on va dire task égale à getTask. On va vérifier si le
00:00:23 :nom est à l'intérieur de notre task ici, donc si le nom de la tâche qu'on essaie d'enlever estinclus à l'intérieur de notre dictionnaire. Si ce n'est pas le cas, on va tout simplement dire que
00:00:32 :la tâche n'existe pas et qu'on ne peut donc pas l'enlever, puisqu'on ne peut pas enlever quelquechose qui n'existe pas dans un dictionnaire. Donc on va dire là encore if name not in task et on va
00:00:43 :faire un logging de erreur qui va nous dire que la tâche n'existe pas dans le dictionnaire toutsimplement. Et on va faire un return false qui va nous indiquer qu'on n'a pas réussi à enlever la
00:00:57 :tâche. Donc ça, ça ressemble pas mal à ce qu'on avait ici, sauf que là on vérifiait si la tâcheétait déjà dans le dictionnaire et là on vérifie si la tâche n'est pas dans le dictionnaire. Donc
00:01:06 :si elle n'est pas dans le dictionnaire, on ne peut pas l'enlever. Si par contre elle est dans ledictionnaire, on va pouvoir l'enlever. Donc comment on enlève une clé à l'intérieur d'un dictionnaire ?
00:01:15 :Il y a plusieurs façons de faire. Une façon que j'utilise, moi, c'est d'utiliser le mot del,qui me permet de supprimer, puisque del c'est le raccourci de delete. Delete ça veut dire supprimer
00:01:24 :en anglais. Donc on va supprimer la tâche qui a comme nom de clé le nom de la tâche. Donc on varécupérer la clé qui est associée à name dans notre dictionnaire et la supprimer. Et ça va tout
00:01:34 :simplement supprimer cette association clé-valeurs à l'intérieur de notre dictionnaire. Donc qu'est-cequ'il nous reste à faire maintenant ? Et bien il nous reste à écrire ce dictionnaire qui a été
00:01:44 :amputé de cette tâche, si vous voulez. On a enlevé la tâche, donc maintenant on a un dictionnaire quiest le même que celui qu'on avait au début, moins la tâche qu'on vient d'enlever. Donc là il va
00:01:52 :falloir refaire en fait ce qu'on a fait ici, c'est-à-dire vérifier déjà que le dossier existe ounon. S'il n'existe pas on le crée et ensuite écrire les informations à l'intérieur du fichier JSON.
00:02:02 :Donc pour l'instant je vais copier tout ça, mais si vous vous souvenez des parties précédentes vousdevez avoir une alerte rouge dans votre tête en ce moment, puisqu'il ne faut jamais copier-collercomme ça des gros blocs de code. Donc pour l'instant je vais le faire, puisqu'on va faire
00:02:15 :des tests pour vérifier que le add task et remove task fonctionnent. Vous allez voir dans laprochaine partie on va optimiser le code pour ne pas réutiliser en fait deux fois les mêmesblocs ici, donc le bloc qu'on a une fois dans remove task et qu'on a également à l'intérieur
00:02:28 :de add task. On va tout mettre ça dans une autre fonction qu'on va appeler dans les deux fonctionsici, donc dans add task et remove task. Pour l'instant je laisse comme ça et je fais juste un
00:02:36 :return true à la fin pour indiquer que la tâche a bien été enlevée. Donc on a nos deux fonctionsadd task et remove task et on va essayer de voir si tout ça fonctionne. Normalement ça devrait
00:02:45 :fonctionner si je ne me suis pas trompé, donc on va tester tout ça pour voir si le fichier JSON sefait bien créer, si la tâche est correctement ajoutée et on va essayer également d'enleverpar la suite une tâche qu'on aurait ajoutée. Donc je suis à l'intérieur de mon dossier utilisateur
00:02:59 :ici et pour l'instant j'ai déjà le dossier todo puisque j'avais fait des tests forcément avantde faire cette vidéo, donc je vais tout simplement le supprimer et on va voir si tout fonctionne mêmequand le dossier n'est pas présent ici. Donc on va utiliser ici notre petit bloc pour créer une
00:03:14 :tâche, donc on va faire par exemple t égale add task et on va donner un nom à une tâche, donc onva dire par exemple apprendre piton, c'est une bonne chose à faire et on va faire un print det tout simplement pour vérifier ce que ça nous retourne. Donc on fait un clic droit et on fait
00:03:30 :run file in python console, donc là on retrouve notre logging qui fonctionne, qui nous dit quedonc c'est un logging de type info et que la tâche a bien été ajoutée et on a true qui est affichéici puisque on a fait un print de t et qu'est ce que c'était et bien c'est ce qu'on retourne à
00:03:44 :l'intérieur de notre fonction ici et là comme la tâche a bien été ajoutée et bien on retournetrue tout simplement. Donc je vais aller voir à l'intérieur de mon finder ici, on a bien le dossier
00:03:53 :todo et si je vais voir à l'intérieur du dossier j'ai bien mon fichier jason, on va l'ouvrir dansun textedit pour vérifier ce qu'il contient et on a bien un dictionnaire avec le nom de la tâcheen clé et en valeur false donc qui indique que la tâche n'a pour l'instant pas été complétée. Donc
00:04:08 :ça fonctionne et maintenant on va essayer de supprimer cette tâche donc plutôt que de faireadd task ici tout en bas on va tout simplement faire remove task donc on change le nom de lafonction, on relance tout ça donc je clique sur la petite flèche ici pour relancer mon script et
00:04:22 :là on a encore une fois le info qui dit que donc là ça dit que la tâche a bien été ajoutée parcequ'on a oublié de changer le texte ici donc je vais mettre la tâche a bien été supprimée plutôtet on a true également ici qui est retourné puisque on est arrivé jusque là donc on retourne
00:04:36 :true. Je vais aller vérifier si la tâche a bien été supprimée donc j'ouvre ce fichier dans texteditet c'est le cas on a bien un dictionnaire vide donc la tâche a été correctement enlevée. Vous
00:04:46 :noterez que là le fichier existe même si on a un dictionnaire vide à l'intérieur ça veut dire quequand on va aller récupérer nos tasks ici dans ce cas ci on va passer à l'intérieur de cettestructure conditionnelle puisque le chemin existe on va ouvrir ici notre fichier json et on va
00:05:00 :retourner ce qu'il contient donc ça va être un dictionnaire vide ça va être la même chose quece qu'on retourne ici sauf qu'on va quand même passer à l'intérieur de cette boucle alors il fautfaire très attention avec les fichiers json par contre puisque si vous modifiez ce fichier si par
00:05:12 :exemple vous vous amusez à enlever alors là oui il ne veut pas que je l'enlève puisque je pense queje suis directement dans mon dossier utilisateur mais si jamais vous voulez modifier ce fichier sivous le modifiez que vous enlevez tout ce qui est à l'intérieur vous allez pouvoir vous retrouver
00:05:27 :éventuellement avec des erreurs donc des erreurs de json puisque un fichier json pour le lire ilfaut que les que les données qui soient à l'intérieur soit valide là on a un dictionnairemême s'il est vide c'est quand même valide si vous ne mettez rien dans le dans le fichier vous
00:05:41 :allez avoir une erreur si vous mettez un dictionnaire qui est mal formaté avec une virgule au milieupareil vous allez avoir une erreur donc c'est un peu l'avantage et l'inconvénient des json c'estque c'est très pratique si on veut modifier quelque chose rapidement sans avoir besoin dese connecter à une base de données d'entrée des logging mot de passe etc par contre le risque c'est
00:05:58 :que quelqu'un ouvre le fichier à y mettre une virgule mal placée ou fasse juste supprimer toutce qu'il contient en oubliant de mettre un dictionnaire vide dans ce cas ci et ça pourraitfaire planter le script donc si on voulait vraiment améliorer le script et avoir quelque chose de plus
00:06:12 :robuste il faudrait faire un peu plus de vérification ici puisque là pour l'instant on faitjuste retourner notre ce que contient le fichier json donc ça se peut que ça plante si le fichierne contient rien ou même que ça nous retourne quelque chose d'erroné si je mets une chaîne
00:06:24 :de caractère dedans ça va nous retourner une chaîne de caractère donc c'est problématiquepuisque dans ces fonctions ici après on ajoute des clés à l'intérieur de task donc si on a unechaîne de caractère on va avoir une erreur puisqu'on ne peut pas ajouter une clé comme ceci à
00:06:37 :l'intérieur d'une chaîne de caractère donc là pour l'instant c'est vraiment assez basique je ne veuxpas m'en aller dans des trucs trop complexes puisque ce programme est déjà assez lourd et surtout auniveau de l'interface vous allez voir il y a pas mal de choses donc si vous voulez vraiment faire
Ce n'est pas fini...
✋
Tu as complété % du parcours 🔥
Termine l'intégralité de la formation pour pouvoir débloquer ton attestation de réussite.