While et for
mery-mery
Messages postés
15
Statut
Membre
-
Phil_1857 Messages postés 1883 Date d'inscription Statut Membre Dernière intervention -
Phil_1857 Messages postés 1883 Date d'inscription Statut Membre Dernière intervention -
Bonjour a tous,
je voulais vous demandez une petite questions qui concerne un problème ou je me suis blocker . Je suis entrain de faire un programme qui consiste a demander le login et password ,mais j’aimerai bien ajouter que user a le droits juste pour 3 chance d’essai apres il affiche le programme un message.exemple: "vous avez dépasser les 3 chance le compte est blocker".
Je sais pas si j'ai étais très clair, enfin si quelqu'un a une idée qu'il me la fasse partager.
Merci beaucoup!
voici le code:
--
better late than never
je voulais vous demandez une petite questions qui concerne un problème ou je me suis blocker . Je suis entrain de faire un programme qui consiste a demander le login et password ,mais j’aimerai bien ajouter que user a le droits juste pour 3 chance d’essai apres il affiche le programme un message.exemple: "vous avez dépasser les 3 chance le compte est blocker".
Je sais pas si j'ai étais très clair, enfin si quelqu'un a une idée qu'il me la fasse partager.
Merci beaucoup!
voici le code:
def login():
while True:
user = input("login")
login=user
if user == 'mery':
break
print("user faux")
return user
login()
def password():
while True:
password =input("password: ")
if password == 'mery123':
print("hello Mery")
break
print("pass faux")
return password
password()
--
better late than never
3 réponses
-
Bonjour
Il va y avoir, plusieurs choses à modifier.
Dans un premier temps, je t’invite à réfléchir sur le fait quewhile True:
fait boucler à l’infini
-
Bonjour,
On dit : 'je voulais vous demander' et 'le compte est bloqué' ...
Si le mot de passe est faux, il faut compter le nombre d'essais, et si on dépasse 3, sortir du while en affichant un message
Un truc dans ce style là:def password(): n=3 while True: password =input("Mot de passe : ") if password == 'mery123': print("hello Mery") break else: n -= 1 if(n == 0): password = '' break print("Mot de passe faux, encore {} essai(s)".format(n)) return password passw = password() if(passw == ''): print('\nCompte bloqué')-
Bonjour Phil.
Oui c’est une façon de faire, cela dit, jusque-là mery mery attend qu’on lui donne tout cuit une réponse à ses exercices.
Ce serait bien qu’il (elle ?) apprenne à concevoir les algorithmes en solo.- Bonjour Whismeril,
Tu as parfaitement raison, on essaie de donner des pistes, et ensuite on est tenté de donner un bout de code :-) :-)
Effectivement, il y des des trucs de base que mery mery devrait savoir, comme de mettre un return en fin de fonction et d'invoquer cette fonction sans récupérer le contenu du return dans une variable ...
-
-
En principe, les essais sont limités à N tentatives (ici 3) pour une combinaison d'identifiant et de mot de passe.
L'interaction avec le système gérant l'authentification :- ne devrait pas dire si c'est l'identifiant qui est erroné, le mot de passe ou les deux,
- mais devrait compter une tentative consommée lorsque l'identifiant est erroné, le mot de passe ou les deux, en émettant un message, une fois l'identifiant et le mot de passe saisis : "Erreur : identifiant ou mot de passe faux, encore xxx essai(s) restant(s)".
Le fait que l'indication ne soit pas donnée sur lequel est faux, ou les deux, permet de renforcer la sécurité.
Aussi, je ne crois pas que cela ait beaucoup de sens de faire 2 fonctions, une pour l'identifiant et l'autre pour le mot de passe (surtout que la fonction password ne sait pas pour quel identifiant elle doit contrôler le mot de passe). C'est le couple identifiant et mot de passe qui doit être validé.
Enfin, tout ceci est bien joli pour faire joujou, mais très éloigné d'un véritable système d'authentification où il est exclu que les mots de passe soient en clair et qui plus est dans le code source.
Dal