Projet personnel Python : générateur de mot de passe avec l'interface utilisateur | Ali | Skillshare
Recherche

Vitesse de lecture


1.0x


  • 0.5x
  • 0.75x
  • 1 x (normale)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Projet personnel Python : générateur de mot de passe avec l'interface utilisateur

teacher avatar Ali

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Leçons de ce cours

    • 1.

      Vidéo 1 Introduction

      1:58

    • 2.

      Vidéo 2 Les bases de l'interface graphique

      3:49

    • 3.

      Vidéo 3 Affiner l'interface graphique

      14:41

    • 4.

      Vidéo 4 étapes finales

      9:55

  • --
  • Niveau débutant
  • Niveau intermédiaire
  • Niveau avancé
  • Tous niveaux

Généré par la communauté

Le niveau est déterminé par l'opinion majoritaire des apprenants qui ont évalué ce cours. La recommandation de l'enseignant est affichée jusqu'à ce qu'au moins 5 réponses d'apprenants soient collectées.

42

apprenants

1

projets

À propos de ce cours

Cette série de projets guidés s'adresse à toute personne souhaitant améliorer ses compétences en matière de codage au fur et à mesure de ses connaissances en Python. Suivez le long de la création d'un générateur de mot de passe avec une interface utilisateur graphique. À la fin de la série, vous aurez un autre projet personnel sous votre ceinture et un programme de génération de mot de passe fonctionnel que vous pouvez montrer à vos amis.

Dans ce cours, vous apprendrez :

1.  Créer un programme sur Python avec une interface utilisateur

2. Les bases de Tkinter

3. Utilisation du module aléatoire Python

Rencontrez votre enseignant·e

Teacher Profile Image

Ali

Enseignant·e
Level: Beginner

Notes attribuées au cours

Les attentes sont-elles satisfaites ?
    Dépassées !
  • 0%
  • Oui
  • 0%
  • En partie
  • 0%
  • Pas vraiment
  • 0%

Pourquoi s'inscrire à Skillshare ?

Suivez des cours Skillshare Original primés

Chaque cours comprend de courtes leçons et des travaux pratiques

Votre abonnement soutient les enseignants Skillshare

Apprenez, où que vous soyez

Suivez des cours où que vous soyez avec l'application Skillshare. Suivez-les en streaming ou téléchargez-les pour les regarder dans l'avion, dans le métro ou tout autre endroit où vous aimez apprendre.

Transcription

1. Vidéo 1 Introduction: Bienvenue à tous. Dans ce cours, je vais vous apprendre à créer votre propre générateur de mots de passe. Le langage de programmation que nous utiliserons pour créer cette opération sera Python, avec un langage appelé tkinter. Tkinter est simplement une bibliothèque Python qui nous permet de créer une interface utilisateur graphique ou une interface graphique. Cela nous permettra d' interagir avec notre générateur de mots de passe sans avoir à taper dans une fenêtre de terminal. J'ai divisé le cours en quelques sections afin de vous permettre de mieux comprendre le processus de création de cette application. Et je voulais juste lancer l'application très rapidement pour vous montrer exactement sur quoi nous travaillerons une fois que nous aurons terminé. Nous avons donc simplement un simple générateur de mots de passe indiqué dans la première case, vous pouvez entrer le nombre de mots de passe que vous souhaitez dégénérer. Donc, juste pour cet exemple, je vais en saisir six. Et dans la deuxième case, nous pouvons entrer la longueur de caractères souhaitée pour nos mots de passe. Donc, à titre d'exemple, je viens de saisir 12. Et si je clique sur janvier, vous verrez que six mots de passe ont été générés. Et chaque mot de passe comporterait 12 caractères. Et si je clique à nouveau sur janvier, nous aurons un nouveau jeu de mots de passe. Et je pourrais simplement cliquer continuellement sur Générer. Et chaque fois que je clique sur Générer, un nouvel ensemble de mots de passe est créé chaque fois que nous le faisons. Il s'agit du type général de processus n. C'est ce à quoi nous arriverons lorsque nous aurons terminé avec l'application. Et j'espère que ce cours vous aidera vraiment à développer vos compétences en matière de codage et à avoir un nouveau projet à votre actif. J'ai trouvé celui-ci très intéressant et amusant à travailler sur moi-même, et j'espère que vous l'apprécierez tous également. Bonne chance avec toutes les vidéos. Et j'espère que le processus assez simple et qu'il sera créé. Et je vous verrai tous dans la prochaine vidéo. 2. Les bases de la vidéo 2 de l'interface graphique: Bienvenue dans la deuxième vidéo. Dans ce segment du cours, nous allons simplement créer notre modèle de interface graphique. Nous allons donc utiliser ce modèle de base pour créer notre projet final. Pour commencer, j'ai ouvert PyCharm, qui est l'identifiant que je vais utiliser pour créer ce projet. Si vous préférez utiliser un autre identifiant, vous pouvez le faire. Et j'ai déjà un fichier Python vide ouvert ici. Si votre IDE contient des textes prégénérés dans le fichier Python, vous pouvez simplement sélectionner tout le texte et le supprimer pour avoir un fichier vide affiché. La première chose que je vais faire est donc d'importer la bibliothèque Tkinter. Nous allons donc simplement aller de l'avant et le faire. Ensuite, nous allons créer une fenêtre qui est simplement une instance de la clause tkinter is TK. Et ce que je veux dire par là, c'est que TK s'affichera comme ça, et nous pourrions simplement définir une variable égale à cela. Donc, pour cet exemple, je vais dire si root est égal à TK. Maintenant, chaque fois que nous voulons faire référence à notre fenêtre, nous pouvons simplement faire référence à l'itinéraire. Si je voulais définir la taille de la fenêtre, par exemple, je pourrais simplement dire géométrie racine, 900 x 850. Avec cette ligne, j' ai défini la taille de nos fenêtres afin que nous puissions la modifier pour agrandir ou réduire la fenêtre. Mais l'idée principale que je voulais faire passer est que c'est cette variable racine qui fait référence à notre fenêtre maintenant. Donc, si nous voulons ajouter une fenêtre de texture, par exemple si vous souhaitez ajouter un titre, nous pourrions dire route point title, générateur de mots de passe aléatoires. Et cela définira le titre de notre fenêtre. Et la dernière chose que je veux faire est définir la boucle principale de notre fenêtre. Sur cette diapositive, nous indiquerons à Python qu'il doit exécuter la boucle d'événements Tkinter, qui écoutera des éléments tels que les clics sur les boutons ou les pressions de touches. Et sans cette ligne, notre fenêtre ne fonctionnera pas du tout. Il est donc important que cela figure dans notre code afin que notre fenêtre s' exécute une fois que nous avons cliqué sur Exécuter dans notre IDE. Donc, pour sécréter la ligne de boucle principale, il suffit d'écrire cette racine. Je ne veux pas dire. Maintenant, si je clique sur Exécuter, nous verrons ici Si je mets cela en évidence, voici à quoi ressemblera notre fenêtre. Encore une fois, si je veux changer la taille, par exemple si je veux réduire la taille de la fenêtre, je pourrais dire que dans la géométrie de Rudolf, la taille sera 700 sur 600. Et on peut réouvrir sa fenêtre ici. Et cela va en fait réduire la taille de la fenêtre. Voici à quoi ressemblera notre dernière fenêtre. J'espère que cela avait du sens et je vous verrai tous dans la prochaine vidéo où nous continuerons à ajouter de nouvelles fonctionnalités à notre interface graphique. 3. Vidéo 3 Refinements d'interface graphique: OK, bienvenue dans la prochaine vidéo de cette série. Nous allons continuer à travailler sur la partie GUI de notre générateur de mots de passe. Nous allons donc simplement terminer cette partie. Et pour récapituler, dans la dernière vidéo, nous avons passé en revue la création d'une fenêtre et l'ajout d'un titre à sa fenêtre. Donc, si je réexécute ce programme, juste pour montrer ce que nous avons déjà, voici à quoi ressemble notre programme vu dans la dernière vidéo. Donc, dans cette vidéo, ce que je vais d'abord faire c'est créer quelque chose qui s'appelle le label. Et dans tkinter, le terme label fait référence à la même chose que le mot label lui-même. étiquettes, comme leur nom l'indique, ne sont que des morceaux de texte que nous pouvons utiliser pour décrire des éléments de notre interface graphique. Et encore une fois, c'est assez évident. Je vais créer deux labels différents dès maintenant dans le cadre de ce projet. Le premier niveau sera donc appelé mot de passe connu, qui demandera simplement à l'utilisateur le nombre souhaité de mots de passe qu'il souhaite générer. Et la deuxième étiquette sera appelée longueur du mot de passe, ce qui demandera simplement à l'utilisateur la longueur de caractères du mot de passe qu'il souhaite avoir pour créer une étiquette. La première chose à faire est simplement de donner un nom à votre label. Je vais donc dire mot de passe s'il est engourdi, comme si c'est égal. Ensuite, nous utiliserons le terme label ici pour indiquer à Python que nous créons une étiquette. Et lorsque nous créons une étiquette, il n'y a que deux éléments que nous voulons masquer entre crochets. La première sera donc notre fenêtre. Et donc puisque notre fenêtre s' appelle root entrera root. Et puis le texte par virgule est égal à. Et puis c'est ici que nous pouvons saisir le texte. Donc, mot de passe et disons que nous demanderons à l'utilisateur saisir le nombre de mots de passe à générer. Voici à quoi ressemblera ta table . Pour notre deuxième niveau, je dirais que la longueur du mot de passe est égale à la racine de l'étiquette. Ensuite, nos textes seront égaux à la longueur de caractères souhaitée pour le mot de passe. Ce sont deux étiquettes avec son interface graphique. Ensuite, je vais ajouter ces deux étiquettes à notre interface graphique. Nous définissons donc d'abord les étiquettes. Maintenant, pour les ajouter , nous devons effectuer un deuxième processus. Avant de commencer. Je vais juste dire que pour ce projet, je vais utiliser des conteneurs et un système de crédit. Ainsi, le système de grille utilise essentiellement des lignes et des colonnes pour décrire où vous souhaitez placer les éléments dans une interface graphique, par exemple si je dis que je veux placer la première étiquette dans la colonne zéro, ligne zéro, puis le deuxième libellé de la colonne zéro, première ligne. Ce qui se passera, c'est que la première étiquette sera placée au-dessus de la deuxième étiquette. Tout est relatif. Donc, si je dis que je veux que le mot de passe num soit dans la colonne zéro et la longueur du mot de passe dans la première colonne. Python saura alors que, d'accord, je dois placer ces deux étiquettes l' à côté de l'autre au lieu d'une en haut et une en bas. Je vais donc simplement le taper ici pour vous donner une meilleure idée de ce que j'essaie de dire. Donc, pour ajouter l'étiquette ici, je dirais que la colonne de la grille du mot de passe est égale à zéro et rho est égale à un. Et maintenant, pour ajouter la longueur du mot de passe , je souhaite ajouter cette longueur de mot de passe sous le numéro de mot de passe pour notre projet . Je dirais donc que la longueur du mot de passe est une grille de documents, la colonne est égale à zéro parce que je veux que les deux se trouvent dans la même colonne. Et une ligne est égale à un, vous savez, changez cela en ligne zéro parce que si vous pouvez commencer par zéro. Et maintenant, si je lance le programme comme ça, les étiquettes apparaîtront comme ça. Et encore une chose que je peux faire ici, c'est de commenter notre géométrie Rudolf ou de vous envoyer une taille de fenêtre. En utilisant le système de grille, Python saura redimensionner automatiquement la fenêtre en fonction de la taille de nos textes, etc. Je peux donc simplement le commenter ici. Et si je réexécute notre programme, nous verrons que nous avons nos deux étiquettes, que nous les afficherons ici sur notre fenêtre, comme nous le voulions. C'est donc essentiellement ainsi que nous ajouterions des étiquettes à notre interface graphique en utilisant Tkinter. La prochaine chose que je veux aborder est l'ajout d'une boîte de rotation. Ainsi, lorsque je fais tourner des cases, les boîtes de rotation sont simplement de petites boîtes dotées de flèches vers le haut et vers le bas qui vous permettent de sélectionner des nombres dans une certaine plage ou vous pouvez saisir le numéro. La raison pour laquelle je souhaite inclure des boîtes à spin dans ce projet est forte. Nous pourrions les utiliser pour permettre à l'utilisateur de saisir longueur de mot de passe souhaitée ou pour saisir le nombre de mots de passe qu'il souhaite régénérer le sonar pour créer une boîte de rotation. Je peux d'abord définir un nom pour notre spin bulk. Appelons donc cela le spin. Donc, pour notre première poubelle, nous l'utiliserons également. Permettez à l'utilisateur de définir le nombre de mots de passe qu'il souhaite générer. Ensuite, la deuxième boîte de rotation permettra l'utilisateur de saisir la longueur de caractères de son mot de passe souhaitée. Donc, pour la première poubelle, je vais la définir comme spin équivaut à spin box. Ensuite, je vais saisir le nom de notre fenêtre. Alors, qui est la racine. Ici, je peux définir une plage. Je peux donc dire que I est égal à 02, égal à 20. Cela signifie donc que la boîte de rotation permettra à un utilisateur de choisir des nombres de 0 à 20 et ni plus ni moins. Enfin, je peux définir la largeur de la boîte de rotation. Je dirais donc simplement que pour ce projet, la largeur est égale à cinq. Nous avons donc maintenant une boîte de rotation définie ici. Et notre deuxième spin box, je dirais simplement qu'elle est épuisée, équivaut à suspendre des livres. Et encore une fois, l'itinéraire partant est égal à 02, est égal à 20 et la largeur est égale à cinq. Et permettez-moi de relancer ce programme pour m'assurer que tout fonctionne comme prévu. OK, je dois juste faire un petit changement ici. Donc, un trait de soulignement égal à zéro serait la syntaxe correcte. Et laisse-moi juste exécuter ce programme. Et comme indiqué ici, tout fonctionne à nouveau comme prévu. Nous n'avons pas ajouté la boîte de rotation, les boîtes de rotation à notre GYN. Alors maintenant, allons-y et faisons-le. Donc, pour ajouter la première boîte d'ajustement, nous pouvons simplement dire spin parce que c'est le cas, j'utilise spin parce que c'est le nom de nos bugs de première année. Et si nous voulions ajouter la deuxième boîte de rotation, nous dirions « spin one ». Et donc je parle de grille à points rotatifs. Ici, nous pouvons définir la colonne. Et la ligne que nous voulons placer est celle de la boxe. Donc, pour l'instant, je vais simplement ajouter ceci dans la colonne zéro de la deuxième ligne. Ce serait donc juste en dessous de la longueur du mot de passe. Suspendez la grille à chiens, la colonne est égale à zéro et rho est égale à. Lance ça. Nous allons voir si nous avons un spin bogs, n'est-ce pas ? Dans notre déclaration, veuillez saisir la longueur de caractères souhaitée pour le mot de passe. Et en fait parce que je veux que cette première boîte vin permette à l'utilisateur de définir le nombre de mots de passe qu'il souhaite. Janvier Je vais remplacer la ligne par la première ligne, et je vais remplacer l'étiquette de longueur du mot de passe par la troisième ligne. Donc, une fois que c'est fait, ça devrait ressembler à ceci. Maintenant, je vais simplement ajouter cette deuxième boîte de rotation, qui permettra à l'utilisateur de saisir la longueur de caractères de son mot de passe souhaitée. Je vais donc l'ajouter à la quatrième ligne. Je dirais donc que spin one dog grid vaut zéro et rho vaut quatre. Et si je le gère, c'est ce que nous voulons pouvoir voir ici. C'est donc ce à quoi nous nous attendrions après avoir ajouté nos boîtes de sprint et nos étiquettes à notre interface graphique. Et au fur et à mesure que vous parcourez cela, je sais que vous vous demandez peut-être quoi cela se rapporte à la fonction réelle qui génère des mots de passe de manière aléatoire et les affiche sur notre interface graphique. Et ne vous inquiétez pas si cela prête à confusion. Tout finira par avoir du sens au fur et à mesure que je l'étudierai. Faites donc de votre mieux pour suivre et vous devriez être en mesure de comprendre comment cela fonctionne. OK, nous avons donc nos boîtes à centrifuger, nous avons nos étiquettes. Maintenant, ce que je veux faire, c'est simplement définir notre fonction, notre fonction principale que nous utiliserons pour générer des mots de passe aléatoires. Mais je vais juste en faire une fonction factice pour le moment. Il ne fait donc rien vraiment pour le moment. Il indiquera simplement, il affichera simplement « bonjour ». Donc, juste pour définir la fonction, je dirais définir un appel, il a cliqué. Je vais juste dire « imprimer ». Bonjour Si je définis cette fonction comme une fonction factice pour le moment, c'est parce que je souhaite ajouter un bouton sur l'interface graphique, qui exécutera cette fonction une fois que vous aurez cliqué dessus. Une fois que cette fonction générera des mots de passe aléatoires, nous nous attendons à ce que lorsque vous cliquez sur ce bouton, elle exécute cette fonction et génère des mots de passe et affichez-les sur l'interface graphique. Donc, pour ajouter un bouton à notre interface graphique, nous devons d'abord définir un bouton. Je vais donc appeler notre bouton BTN. Et je dirais que BTN est égal à bouton. Ensuite, je vais définir la fenêtre qui est root. Les textes ou le bouton VR seront égaux à générer. Et c'est ici que nous pouvons définir la fonction que nous voulons que Python exécute une fois que vous avez cliqué dessus. Je veux donc exécuter cette fonction ici sur laquelle on clique, nous l'avons défini. Donc, pour que cette fonction soit exécutée en cliquant sur ce bouton, je dis que la commande équivaut à un clic, comme ça. Je vais simplement ajouter ce lien à notre graphique. Je dirais donc que la colonne de la grille de points BTN est égale à zéro. Et ne l'avez pas tout en bas. Donc je dirais que rho est égal à cinq. D'accord ? Et je veux juste supprimer ces deux crochets ici parce qu'ils ne sont pas obligatoires. Et maintenant, si je lance ce programme, mettez-le en évidence ici. Et si je clique sur Générer, nous devrions voir une petite console intérieure contextuelle. Donc, en janvier, nous pouvons voir que chaque fois que vous cliquez sur Générer, le mot bonjour s'affiche sur la console. Tout fonctionne donc comme prévu. Et enfin, ce que je veux faire, c'est ajouter une zone de texte. Cette zone de texte sera donc utilisée pour tous les mots de passe générés à afficher sur notre interface graphique. Ainsi, pour définir une zone de texte, je peux dire t, qui sera également utilisée. Nous utilisons ce que nous avons défini dans notre boîte de texte. Donc t est égal à la racine du texte. Et nous lui donnerons une hauteur de 15 et une largeur de 50. Et je peux simplement l'ajouter à la grille en disant que T Don, la colonne de la grille vaut zéro, rho vaut sept. Et encore une fois, je n'ai pas besoin de ces points-virgules. Et si je clique sur Exécuter, nous pouvons voir qu'une zone de texte s'affiche juste sous notre bouton de janvier. C'est donc ce que nous voulons voir ici. OK, donc c'est tout ce que je voulais faire pour cette vidéo. Donc, juste pour récapituler, nous avons ajouté des étiquettes sur elle pour vous. Pourquoi ? Nous avons ajouté des boîtes de rotation. Nous avons ajouté un bouton à notre interface graphique et nous l'avons programmé pour pouvoir exécuter une fonction au clic. Et nous avons ajouté une zone de texte à notre interface graphique. Dans la vidéo suivante, nous allons donc rendre ces éléments plus fonctionnels et permettre à Python de générer des mots de passe en à Python de générer des mots de passe utilisant les valeurs définissant nos boîtes de rotation et notre affichage dans notre zone de texte que nous avons créée et qui s'affiche sur Energy Wise. J'espère donc que cela avait du sens. Si ce n'est pas le cas, n'hésitez pas à revenir en arrière, à essayer de ralentir la vidéo et à tout parcourir étape par étape. La première fois que j'ai appris à m'embrouiller, il m'a fallu un peu de temps pour comprendre ce qui se passait. Dans la vidéo suivante. Nous allons simplement continuer dans cette voie et nous allons construire à partir de là. 4. Vidéo 4 étapes finales: Bienvenue dans la dernière vidéo cette série de projets guidés. Dans cette vidéo, nous allons simplement passer en revue la fonction principale qui générera nos mots de passe lorsque nous exécuterons l'application. Essentiellement, cette fonction utilisera une chaîne contenant une combinaison de lettres, de chiffres et de caractères spéciaux. Et il sera utilisé pour générer nos mots de passe. Et pour que cela fonctionne, notre fonction sélectionnera les caractères de notre chaîne selon un index aléatoire à chaque fois, et les ajoutera à une chaîne de mot de passe jusqu'à ce qu'elle atteigne la longueur de mot de passe souhaitée. Cette fonction permettra également à l'utilisateur de choisir le nombre de mots de passe qu'il souhaite générer. En résumé, cette fonction permettra à l'utilisateur de choisir la longueur de son mot de passe souhaitée ainsi que le nombre de caractères qu' il souhaite pour chaque mot de passe. Nous reviendrons à la fonction fictive que nous avons définie précédemment. C'est donc là que nous avons dit « print hello ». Et dans cette fonction, je vais définir un entier appelé i. Et je mettrai I égal à zéro. Dans un premier temps. Je servirai de compteur afin que chaque fois que notre boucle filaire sera exécutée, je sois incrémentée d'une unité. Supposons donc que si l' utilisateur décide de vouloir créer 12 mots de passe TV par ce programme, la boucle while s'exécutera 12 fois pour générer 12 mots de passe différents. Et chaque fois que la boucle s'exécute, elle en ajoute une à I. Et une fois que j'en aurai atteint, disons 12, par exemple disons 12, par exemple, elle sortira de la boucle while et nous quitterons notre fonction. Et ce sera lorsque la partie du programme générant un mot de passe sera terminée. La prochaine chose que je vais faire est d'ajouter du code ici pour supprimer le texte de notre zone de texte lorsque la fonction est appelée. Je vais donc juste le taper ici. Et en gros, cette ligne va simplement supprimer tous les textes. Nous avons une zone de texte inhérente une fois que la fonction est exécutée, comme je l'ai dit plus tôt. Vous pourriez donc vous demander, eh bien, pourquoi devrions-nous faire cela ? Disons que nous avons lancé le programme et généré quelques mots de passe, et que l'utilisateur décide qu'il souhaite générer d' autres mots de passe. Permettez-moi de créer un deuxième ensemble de mots de passe. Eh bien, si nous ne supprimions pas réellement les mots de passe précédents créés par ce programme. Les nouveaux mots de passe sont en fait simplement imprimés et juste en dessous. Ça n'a pas vraiment l'air trop beau. Il serait donc préférable de supprimer les anciens mots de passe que le programme a créés pour faire de la place aux nouveaux. La prochaine chose que nous allons faire est de définir une boucle while, qui sera utilisée pour démarrer le processus de génération de chaque mot de passe. Nous pouvons donc dire, que je suis inférieur à, prendre un numéro du premier spinner, qui est celui d' ici où l'utilisateur peut le saisir. Nombre de mots de passe qu'ils souhaitent dégénérer. Donc, si vous vous souvenez de la dernière vidéo, nous appelons cela un spin. Et donc ici, nous pourrions dire, tant que je ne suis pas que spin, dark get. Et nous aurions besoin de convertir point de spin get en un entier. Nous dirions donc int et jouerions spin point getName entre crochets pour ce faire. Donc, alors que I est inférieur au nombre défini par l'utilisateur dans la première boîte à épingles. On peut dire que le mot de passe est égal à une chaîne vide. Hein ? En dessous, on pourrait dire Y0. La longueur de notre mot de passe est inférieure au nombre défini dans Spin One Dot Get. Et encore une fois, cette ligne ne fait que récupérer le numéro que l'utilisateur a saisi dans la deuxième boîte de rotation. Donc, si nous revenons à notre programme ici, cela va définir la longueur de caractères souhaitée pour le mot de passe. Encore une fois, nous voulons le convertir en entier, donc nous dirions simplement en savon et en gardant les dépenses entre crochets. Ensuite, nous pourrions dire que son mot de passe sera égal à, et nous allons dire plus égal parce que nous voulons ajouter chaque caractère l'un à chaque caractère autre jusqu'à ce que nous ayons atteint le résultat souhaité longueur du mot de passe. Nous dirons donc que le mot de passe plus est égal à des caractères, rand aléatoire étant égal à zéro. Ensuite, la longueur des caractères moins un. Ce que nous disons ici, c'est que nous allons récupérer un caractère au hasard dans la chaîne que nous définirons et qui contiendra des lettres, chiffres et des caractères spéciaux. Nous disons que nous allons prendre un nombre aléatoire compris entre zéro et la longueur réelle de la chaîne que nous allons créer, qui contient notre jeu de caractères. Et si nous disons moins un, c'est parce que lorsque nous prenons la longueur d'une chaîne, par exemple, cela nous donne la longueur réelle de celle-ci. Disons qu'il y a cinq caractères dans la chaîne. Ce serait très bien. Mais lorsque nous travaillons avec des index, nous partons de zéro et nous ne partons pas réellement d'un. Donc, lorsque nous chercherions un indice de quatre, par exemple dans cette chaîne. Cela signifie que nous allons effectivement récupérer le dernier caractère de cette chaîne. C'est pourquoi nous disons simplement moins un ici. Enfin, dehors de la boucle while, nous voulons insérer notre nouveau mot de passe dans notre zone de texte. Pour ce faire, nous dirions Te point insert, puis appellerions la commande insert password. Ensuite, nous ajouterons simplement un espace ici, en plus. Et nous allons le convertir en chaîne. Donc une ficelle. Et nous allons prendre le mot de passe actuel que nous générons, qui sera I plus un, car les index partiront de zéro. Maintenant que nous parlons de mots de passe, nous voulons commencer par un mot de passe, car il serait moins courant de dire zéro au lieu de mot de passe un. Donc j'en ai plus un. Ensuite, nous ajouterions deux points et un mot de passe régénéré. Et puis une nouvelle ligne. Enfin, nous voudrions augmenter I. Nous dirions donc que I plus est égal à 21. OK, je viens de supprimer les points-virgules présents sur certaines de ces lignes car vous n'êtes pas nécessaire. C'est juste une habitude que j'ai prise en codant en C plus plus. Mais en Python, pour la plupart, ils ne sont généralement pas nécessaires dans les lignes de code que vous devez, n'est-ce pas ? Maintenant, je vais définir notre chaîne qui contiendra des lettres, chiffres et des caractères aléatoires qui seront utilisés pour générer notre mot de passe. Ainsi, comme vous pouvez le voir dans la fonction que nous avons créée précédemment, nous avons une chaîne appelée chars. Et je vais simplement aller au-dessus de cette fonction ici et définir les caractères comme étant égaux à une chaîne. Et je vais simplement coller ici l' ensemble de lettres, chiffres et de caractères que j'ai, que nous pouvons utiliser pour générer nos mots de passe. Voici donc un exemple que vous pourriez utiliser. Et ensuite, nous en ferons quelques-unes. J'ai peut-être remarqué que le code aléatoire ici n' est en fait pas défini car nous devons importer du aléatoire dans Python pour qu'il soit utilisé. Je peux donc simplement aller en haut ici et taper import random. Et maintenant, si je continue et que je l'exécute, le programme devrait fonctionner comme prévu. Donc, si je dis, par exemple je veux générer cinq mots de passe, chacun comportant six caractères. Si je clique sur Générer, nous verrons que cinq mots de passe ont été générés, chacun comportant six caractères. Si je clique à nouveau sur Générer, nous verrons que les mots de passe continuent de changer. C'est donc l'idée principale de ce que j'essayais d'obtenir, le programme que vous devriez être capable de créer après avoir suivi ces vidéos. J'espère que cela a été assez simple et que vous avez pu bien comprendre le processus de création de cette application. Merci d'avoir regardé ces vidéos et j'espère que vous avez apprécié la création de ce projet.