Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2319 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  besoin d'Aide : Python our programmer un mot de passe

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

besoin d'Aide : Python our programmer un mot de passe

n°2245651
eyhe
Posté le 10-12-2014 à 18:29:48  profilanswer
 

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" )[b]

  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 !" )
 [/b]
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 !!!

mood
Publicité
Posté le 10-12-2014 à 18:29:48  profilanswer
 

n°2245660
rage2000
Posté le 10-12-2014 à 20:42:41  profilanswer
 

Effectivement sur la fin tu t’embrouilles un peu les pinceaux:
 

Code :
  1. chiffre_present = False
  2. i = "1234567890"
  3. for c in mdp :
  4.   if c in i :
  5.    chiffre_present = True


jusqu'ici tout va bien ;)
 

Code :
  1. else :
  2.    chiffre_present = False
  3.    satisfaisant = False
  4.    print ("un chiffre minimum" )


Ton else correspond au if précédent. Le problème c'est que ton if est exécuté a chaque caractere de ton password.
Donc si jamais ton 1er caractère n'est pas un chiffre, tu tombes dans ton "else" et déclare que le password est mauvais.
Il faut faire ce test une fois que tu as vérifié tous les caractères donc APRES le for:

Code :
  1. chiffre_present = False
  2. i = "1234567890"
  3. # on test tous les caracteres du password
  4. for c in mdp :
  5.   if c in i :
  6.    chiffre_present = True
  7. # une fois ca fait on regarde si il y a un chiffre ou non
  8. if not chiffre_present:
  9.    satisfaisant = False
  10.    print ("un chiffre minimum" )


 
 

Code :
  1. if not () :

 
oulla t'as voulu faire quoi la ? car not () c'est un truc qui renvoie TOUJOURS True, donc ca sera toujours le cas.
Bref ton if ne sert a rien.

Code :
  1. i = "AZERTYUIOPQSDFGHJKLMWXCVBN" 
  2.   for c in mdp :
  3.    if not c in i :
  4.     satisfaisant = False
  5.   print ("une majuscule minimum" )


Pour les majuscules c'est exactement le même code que pour les chiffres. (d'ailleurs si tu réfléchies un peu tu peux tester les 2 dans la même boucle for au lieu d'en faire 2 a la suite)
 
Une fois que tu auras fixé ca je pense que ca sera bon ;)

n°2245661
eyhe
Posté le 10-12-2014 à 20:56:15  profilanswer
 

Ok je vois oui pour majuscule c'était juste une autre idée mais elle était pire que l'ancienne ....
 
j'ai essayé ce que avec tes modifs et j'ai repris l'idée pour les majuscules et ça marche très bien en effet merci beaucoup :D


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  besoin d'Aide : Python our programmer un mot de passe

 

Sujets relatifs
Aide : Python our programmer un mot de passeAide php mySql
Besoin d'aide pour un projetAide Postionnement article/aside
Outils pour programmer en Javaincorporer plusieurs variables dans du code python
Plus de sujets relatifs à : besoin d'Aide : Python our programmer un mot de passe


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR