Bonjour Voici ma question et ce que je narrive pas a faire :

A l'aide de la fonction randint() du module random, écrire un script qui :

- initialise une liste caracteres = '0123456789abcdefghijklmnopqrstuvwxyz$!%&=+-{}[]',

- qui invite à entrer la taille "Veuillez indiquer la taille du mot de passe à générer",

- qui génère le mot de passe,

- qui affiche le message suivant "Le mot de passe de",taille,"lettres est:" et le mot de passe généré.

Merci de votre aide


Sagot :

Bonsoir

Module random

Le module Python random, comme tous les autres modules, possède une documentation qui liste tout ce qu'il est possible de faire avec le module et les fonctions qu'il apporte.

Voici la documentation pour random:

https://docs.python.org/3/library/random.html

Code

Ci-joint tu trouveras le code final, je vais tenter d'expliquer chaque ligne pour t'aider à le comprendre.

▌ import random

Bon bha je pense que ça va jusque là

▌ caracteres = '0123456789abcdefghijklmnopqrstuvwxyz$!%&=+-{}[]'

Là je déclare simplement ce que l'exercice demande, donc une liste de caractères.
Cela n'a pas d'importance que ce ne soit pas une variable de type 'list', ici c'est une 'string' mais ca posera pas de soucis.
(Pour rappel les variables list c'est list = ['x', 'y'])

▌ length = int(input('Veuillez indiquer la taille du mot de passe à générer > '))

Ici on déclare une variable length qui demande à l'utilisateur de rentrer la longueur souhaitée, c'est le 'input()' qui permet cela.

Le int() qui englobe le input() permet d'obliger la saisie de chiffres, d'un integer (en entier)

▌ generated = random.sample(caracteres, length)

C'est à cette ligne qu'on utiliser une fonction importée par le module random. Il s'agit de sample().

sample(x,y) va retourner une nouvelle liste d'une longueur souhaitée (y) utilisant les éléments contenus dans la liste initiale (x)

Comme je viens de le dire au dessus, sample() va retourner une LISTE sauf que pour utiliser le mot de passe on a besoin que ca soit une string, en "un seul mot".

Donc on va devoir utiliser .join() qui est une fonction par défaut de Python (c.f. la documentation ou ton cours).

▌ print(''.join(generated))

Voilà

Si tu as mal compris quelque chose tu peux me le demander en commentaire,

Bonne soirée ;)

View image CLEMENTCG