Dans cet exercice, nous allons créer un générateur de mot de passe aléatoire.

À l'aide du module string et du module random, vous allez devoir générer un mot de passe aléatoire de la longueur spécifiée dans la variable taille (ici, 8).

Votre mot de passe doit pouvoir contenir des lettres minuscules, majuscules, n'importe quel *chiffre de 0 à 9 et n'importe quel caractère spécial (!"#$%&' etc...).

Afficher l'aide

Le module string vous permet de récupérer des suites de lettres, de nombres ou de caractère spéciaux.

code Code

import string
import random

taille = 8

symboles = string.ascii_letters + string.digits + string.punctuation
mot_de_passe = "".join(random.choice(symboles) for _ in range(taille))

comment Explications

Le but de cet exercice était de générer un mot de passe aléatoire.

Le mot de passe devait être d'une longueur définie dans la variable taille.

La première chose à faire était de récupérer toutes les lettres de l'alphabet, les nombres et tous les symboles.

Pour récupérer ces informations, nous utilisons le module string :

>>> string.ascii_letters + string.digits + string.punctuation
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!#$%&()*+,-./:;<=>?@[\]^_\`{|}~

On utilise ensuite le module 'random' et la fonction 'choice' comme vu dans un exercice précédent. Cette fonction va nous permettre de sélectionner une lettre aléatoire parmi la chaîne de caractères "symboles" que nous avons déclarée plus haut.

Pour répéter l'opération autant de fois que nécessaire, on utilise une boucle et une compréhension de liste :

random.choice(symboles) for _ in range(taille)

Pour terminer, nous joignons tous les éléments aléatoires récupérés grâce à la fonction join :

mot_de_passe = "".join(random.choice(symboles) for _ in range(taille))

star Points importants

  • Pour récupérer toutes les lettres majuscules et minuscules de l'alphabet, on utilise la constante ascii_letters du module string.

  • Pour récupérer tous les nombres, on utilise la constante digits du module string.

  • Pour récupérer tous les symboles du clavier, on utilise la constante punctuation du module string.

  • Pour récupérer une lettre aléatoire dans une chaîne de caractères, on utilise la fonction choice du module random.

import string
import random

taille = 8
import string
import random

taille = 8

lettres = string.ascii_letters + string.digits + string.punctuation
mot_de_passe = ''.join(random.choice(lettres) for l in range(taille))

Console

Un instant...
terminal

Résultats

/ 2 tests validés

Test de la variable mot_de_passe

import string

lettres = string.ascii_letters + string.digits + string.punctuation

for each_lettre in mot_de_passe:
    if each_lettre not in lettres:
        raise AssertionError("Le mot de passe contient un caractère invalide.")

        

Test de la longueur du mot de passe

assert len(mot_de_passe) == taille, "La longueur du mot de passe n'est pas bonne."

        

Bravo, tu as réussi cet exercice de code 🥳

👏

Envoyer ma solution

Vous avez trouvé une solution alternative pour cet exercice ? Proposez votre solution à la communauté 👇

Seules les propositions différentes de la solution proposée par Docstring peuvent être envoyées.

Ma solution :

Rechercher sur le site

Formulaire de contact

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.