Effectivement sur la fin tu t’embrouilles un peu les pinceaux:
Code :
- chiffre_present = False
- i = "1234567890"
- for c in mdp :
- if c in i :
- chiffre_present = True
|
jusqu'ici tout va bien
Code :
- else :
- chiffre_present = False
- satisfaisant = False
- 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 :
- chiffre_present = False
- i = "1234567890"
- # on test tous les caracteres du password
- for c in mdp :
- if c in i :
- chiffre_present = True
- # une fois ca fait on regarde si il y a un chiffre ou non
- if not chiffre_present:
- satisfaisant = False
- print ("un chiffre minimum" )
|
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 :
- i = "AZERTYUIOPQSDFGHJKLMWXCVBN"
- for c in mdp :
- if not c in i :
- satisfaisant = False
- 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