Besoin d'aide !! programme sur Python (mot de passe) amateur

Résolu/Fermé
eyhe Messages postés 11 Date d'inscription jeudi 27 novembre 2014 Statut Membre Dernière intervention 6 mai 2015 - Modifié par Whismeril le 10/12/2014 à 18:57
ghFrankfurt Messages postés 207 Date d'inscription mardi 16 novembre 2010 Statut Membre Dernière intervention 10 décembre 2014 - 10 déc. 2014 à 19:48
Bonjour !

Voila je suis en terminal et je fais ISN
J'ai un petit projet à faire sur le thème du mot de passe.... j'ai presque terminé le programme mais j'ai un souci !
Les conditions sont : -le mot de passe doit faire plus de 4 caractères
-et moins de 10
-il doit avoir 1 chiffre et 1 majuscule au minimum

Je travail sur Python et voilà ce que j'ai fait :

#conditions
def test (mdp) :
 satisfaisant = True
 
 if not len (mdp) > 4 :
  print ("mot de passe trop court" )
  satisfaisant = False
   
 if not len (mdp) < 10 :
  print ("mot de passe trop long" )
  satisfaisant = False
   
 chiffre_present = False
 i = "1234567890"
 for c in mdp :
  if c in i :
   chiffre_present = True
  else :
   chiffre_present = False
   satisfaisant = False
   print ("un chiffre minimum" )
 
 if not () :
  i = "AZERTYUIOPQSDFGHJKLMWXCVBN"  
  for c in mdp :
   if not c in i :
    satisfaisant = False
  print ("une majuscule minimum" )
   
 return satisfaisant  
 
 
#Fonction principale
mdp = input ("entrez un mot de passe : " )
 
while test(mdp)==False :
 print ("Erreur dans le mot de passe" )
 mdp = input ("entrez un nouveau mot de passe : " )
 
#Si toutes les conditions sont bonnes :
else :
 mdp2 = input ("répetez le mot de passe : " )
 while mdp != mdp2 :  
  print ("mot de passe incorrect" )  
  mdp2 = input ("mot de passe non identique réesseyer : " )
 else :
  print ("Mot de passe correct. Bravo !" )


Tout fonctionne sauf pour les chiffres et majuscules .... j'ai essaye plusieurs choses mais au finale soit il ignore la commande ; soit il vérifie chaque caractère du mot de passe un par un et pour chacun d'eux il écrit "un chiffre minimum"

Bref j'ai grand besoin de votre aide rapidement !!!


EDIT: Ajout de la coloration syntaxique.

A voir également:

2 réponses

Bonjour, écrire en gras et mettre des mots comme "rapidement" ou "urgent" font en général fuir ceux qui pourraient répondre.

Le gras fait agressif, et il n'y a rien d'urgent ou de pressé pour le bénévole aidant.


Ceci dit, je ne connais pas Python, mais pour ce type de travail la regex est l'outil idéal. Cette fonction existe en python

1
eyhe Messages postés 11 Date d'inscription jeudi 27 novembre 2014 Statut Membre Dernière intervention 6 mai 2015
10 déc. 2014 à 19:35
oui tu as surement raison mais c'est la première fois que je demande quelque chose sur un forum .... j'ai regardé un peu d'autres demandes et vue que la plus part des fois c'était rédiger dans ce style je me suis dit que c'était surement grâce à ça que les gens répondaient ....

(je suis bien d'accord avec toi !! )
sinon j'ai a peu près trouvé une solution .... c'est un peu du bricolage mais ça marche ps trop mal donc je vais faire avec je pense .....

merci quand meme !!
0