Une boucle qui ne boucle pas
Résolu
Jakes
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
J'aimerais faire un générateur de mot de passe en python, et l'utilisateur doit rentrer le nombre de caractères, le nombre de mot de passe à générer et si il y a des caractères spéciaux ou non.
Mais la boucle while x != cmbne boucle pas. Le générateur marche très bien, mais il génère toujours le même mot de passe si on lui dit d'en générer plusieurs !! Je ne vois pas l'erreur dans mon code pouvez vous m'aider ?
Le code :
Merci d'avance pour votre aide.
J'aimerais faire un générateur de mot de passe en python, et l'utilisateur doit rentrer le nombre de caractères, le nombre de mot de passe à générer et si il y a des caractères spéciaux ou non.
Mais la boucle while x != cmbne boucle pas. Le générateur marche très bien, mais il génère toujours le même mot de passe si on lui dit d'en générer plusieurs !! Je ne vois pas l'erreur dans mon code pouvez vous m'aider ?
Le code :
# -*- coding:Latin-1 -* import os import time from random import randint lettres='abcdefghijklmnopqrstuvwxyz' maj_lettres=lettres.upper() car_spc='^<>$%*-' chfs='0123456789' nb=None combien=None i=0 x=0 pw='' nb_a_random=25 print('Bienvenue dans le générateur de mot de passe.') print("""Conseils : *Utilisez au moins 8 caractères dans un mot de passe *Utilisez majuscules, chiffres et caractères spéciaux pour un mot de passe fort *Pour vous en souvenir, pensez à un mot pour chaque lettre""") os.system('pause') while not combien: try: cmb=int(input('Combien de mots de passe générer ? ')) break except: print('Veuillez renseigner votre choix !!') while not nb: try: nb_car=int(input('\nCombien de caractères le mot de passe doit-il contenir ? ')) if nb_car < 1: print('Le mot de passe doit contenir au moins 1 caractère !!') nb=True else: nb2=None while not nb2: print('\nVeuillez renseigner votre choix par Y pour oui ou N pour non.') chf=input('Le mot de passe doit-il contenir des chiffres ? ') maj=input('Le mot de passe doit-il contenir des majuscules ? ') spc=input('Le mot de passe doit-il contenir des caractères spéciaux ? ') if chf.lower() != 'y' and chf.lower() != 'n': print('\nVeuillez renseigner si vous voulez des chiffres ou non dans votre mot de passe.') if maj.lower() != 'y' and maj.lower() != 'n': print('\nVeuillez renseigner si vous voulez des majuscules ou non dans votre mot de passe.') if spc.lower() != 'y' and spc.lower() != 'n': print('\nVeuillez renseigner si vous voulez des caractères spéciaux ou non dans votre mot de passe.') else: break break except: print('\nVeuillez renseigner votre choix.') if maj.lower() == 'y': lettres+=maj_lettres nb_a_random+=25 if spc.lower() == 'y': lettres+=car_spc nb_a_random+=8 if chf.lower() == 'y': lettres+=chfs nb_a_random+=9 while x != cmb: while i != nb_car: car_random=randint(0,nb_a_random) pw+=lettres[car_random] i+=1 print('\n[{0}] : Votre mot de passe a été généré : {1}'.format(time.strftime('%H:%M:%S'),pw)) time.sleep(1) x+=1
Merci d'avance pour votre aide.
A voir également:
- Une boucle qui ne boucle pas
- Pc qui s'allume et s'éteint en boucle - Forum Virus
- Boucle excel sans macro - Forum Excel
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Vlc lire en boucle ✓ - Forum Lecteurs et supports vidéo
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi
une capture d'écran de ce que le code fait : http://prnt.sc/dagob3