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...).
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_lettersdu modulestring. -
Pour récupérer tous les nombres, on utilise la constante
digitsdu modulestring. -
Pour récupérer tous les symboles du clavier, on utilise la constante
punctuationdu modulestring. -
Pour récupérer une lettre aléatoire dans une chaîne de caractères, on utilise la fonction
choicedu modulerandom.
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...
Résultats
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é 👇
Ma solution :




