besoin d'Aide : Python our programmer un mot de passe - Python - Programmation
Marsh Posté le 10-12-2014 à 20:42:41
Effectivement sur la fin tu t’embrouilles un peu les pinceaux:
Code :
|
jusqu'ici tout va bien
Code :
|
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 :
|
Code :
|
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 :
|
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
Marsh Posté le 10-12-2014 à 20:56:15
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
Marsh Posté le 10-12-2014 à 18:29: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" )[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 !!!