IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

problème programmation mot de passe [Python 2.X]


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2020
    Messages : 7
    Par défaut problème programmation mot de passe
    bonjour,

    je fais un exercice de programmation en python 2.7

    j'ai fait toute la programmation, mais je dois limiter à 3 essais, quand j'entre un mot de passe faux la boucle se fait en entier et je ne peux pas entrer un deuxième essais
    j'ai forcement oublié quelque chose mais je ne vois pas quoi

    pouvez vous m'aider

    voici ou j'en suis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    login="azerty"
    mdpsaisi = str(input("entrez votre code pin"))
    compteur = 0
    while mdpsaisi != login and compteur !=3 :
        compteur += 1
        print("{} n'est pas le mot de passe enregistré. il reste {} essais".format(mdpsaisi,3-compteur))
    if mdpsaisi==login :
        print("accès autorisé ")

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 756
    Par défaut
    Salut,

    Citation Envoyé par romg13 Voir le message
    j'ai fait toute la programmation, mais je dois limiter à 3 essais, quand j'entre un mot de passe faux la boucle se fait en entier et je ne peux pas entrer un deuxième essais
    j'ai forcement oublié quelque chose mais je ne vois pas quoi
    Réfléchissez un peu à ce qui est supposé changer d'une itération à l'autre (en plus du compteur).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2020
    Messages : 7
    Par défaut
    oui le mot de passe change

    mais je ne sais pas comment arrêter la boucle et redemander d'entrer un mot de passe
    je ne sais pas comment traduire ça en langage Python

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 756
    Par défaut
    Salut,

    Citation Envoyé par romg13 Voir le message
    oui le mot de passe change
    ah bon?

    mais je ne sais pas comment arrêter la boucle et redemander d'entrer un mot de passe
    Alors le mot de passe change pas vous ne savez pas le changer... alors ce que vous saviez faire ligne 4 est oublié ligne 6.

    Prenez le temps de comprendre ce que font les instructions que vous avez écrit, relisez votre tuto. préféré pour revoir les mécanismes de base,...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2020
    Messages : 7
    Par défaut
    merci pour votre aide précieuse mais qui ne m'aide pas trop

    j'ai juste une liste de commande avec leur fonction, j'ai bien bien compris que je devais mettre un "else" quelque part mais tout ce que j'ai testé pour l'instant me ramène des erreurs

    je veux bien une explication, je ne vous demande pas de me donner le résultat tout cru mais au moins est ce que quelqu'un pourrait me guider ?

  6. #6
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Citation Envoyé par romg13 Voir le message
    ...j'ai bien bien compris que je devais mettre un "else" quelque part mais tout ce que j'ai testé pour l'instant me ramène des erreurs
    Oui utiliser un else est une possibilité...

    A l'intérieur de la boucle while tu pourrais utiliser un if...else du genre :

    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if mdpsaisi == login:
            print("accès autorisé ")
            break
        else :
            print("{} n'est pas le mot de passe enregistré. il reste {} essais".format(mdpsaisi, 3-compteur))

    Inutile de faire ce test mdpsaisi != login dans la condition de la boucle while puisque dans la boucle on a un if mdpsaisi == login: avec un break

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2020
    Messages : 7
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if mdpsaisi == login:
            print("accès autorisé ")
    cette partie là fonctionne, si je rentre le bon code ça me dit bien "accès autorisé"

    c'est en cas de d'erreur dans le mot de passe qu'il y a un problème
    je n'ai qu'un essai qui s'écrit 3 fois

    *** Console de processus distant Réinitialisée ***
    fdg n'est pas le mot de passe enregistré. il reste 2 essais
    fdg n'est pas le mot de passe enregistré. il reste 1 essais
    fdg n'est pas le mot de passe enregistré. il reste 0 essais

    et je ne comprends pas comment avoir un deuxième essai, comment arrêter la boucle après le premier essai raté et m'inviter à tenter un deuxième essai

  8. #8
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    J'ai regardé ton code et en fait tu peux t'en sortir en ajoutant : mdpsaisi = str(input("entrez votre code pin : ")) dans la boucle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    login = "azerty"
    mdpsaisi = str(input("entrez votre code pin: "))
    compteur = 0
    while mdpsaisi != login and compteur != 3:
        compteur += 1
        print("{} n'est pas le mot de passe enregistré. il reste {} essais".format(
            mdpsaisi, 3-compteur))
        mdpsaisi = str(input("entrez votre code pin : "))
     
    if mdpsaisi == login:
        print("accès autorisé ")
    Je ne te dis pas tout mais il manque des choses, par exemple il faudra changer le chiffre dans compteur != 3 pour avoir 3 essais...

    Et au cas où on ne trouve pas au bout de trois essais ce serait bien d’afficher un message... C'est facile...

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2020
    Messages : 7
    Par défaut
    ok bon merci, j'vais m'arrêter là pour ce soir
    j'ai passé l'après midi là dessus, et il est 22h

    je reprendrai demain matin si vous êtes dispo je vous dirais ou j'en suis

    merci bonne soirée

  10. #10
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Ben là tu y es presque...

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2020
    Messages : 7
    Par défaut
    merci pour votre aide, du coup j'ai compris
    voilà ce que ça donne :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    login="azerty"
    mdpsaisi = str(input("entrez votre code pin"))
    compteur = 0
    while mdpsaisi != login and compteur !=2 :
        compteur += 1
        print("{} n'est pas le mot de passe enregistré. il reste {} essais".format(mdpsaisi,3-compteur))
        mdpsaisi = str(input("entrez votre code pin : "))
    else :
        print("{} n'est pas le bon mot de passe, vous avez épuisé vos trois essais, revenez plus tard".format(mdpsaisi))
    if mdpsaisi==login :
        print("accès autorisé ")
    encore merci,

  12. #12
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Salut,

    Il reste un petit bug : si on tape le bon mot de passe il affiche ceci :
    azerty n'est pas le bon mot de passe, vous avez épuisé vos trois essais, revenez plus tard
    accès autorisé
    En fait on utilise else après un if...

    Ton code du premier message fonctionnait presque, comme déjà dit il suffisait d'ajouter : mdpsaisi = str(input("entrez votre code pin : ")) dans la boucle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    login = "azerty"
    mdpsaisi = str(input("entrez votre code pin: "))
    compteur = 0
    while mdpsaisi != login and compteur != 2:
        compteur += 1
        print("{} n'est pas le mot de passe enregistré. il reste {} essais".format(
            mdpsaisi, 3-compteur))
        mdpsaisi = str(input("entrez votre code pin : "))
     
    if mdpsaisi == login:
        print("accès autorisé ")
    Et il fallait effectivement remplacer 3 par 2 dans compteur != 3:...


    Et si tu veux ajouter ton message à afficher dans le cas où on ne trouve pas au bout de trois essais il suffit d'ajouter un else après le if :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    login = "azerty"
    mdpsaisi = str(input("entrez votre code pin: "))
    compteur = 0
    while mdpsaisi != login and compteur != 2:
        compteur += 1
        print("{} n'est pas le mot de passe enregistré. il reste {} essais".format(
            mdpsaisi, 3-compteur))
        mdpsaisi = str(input("entrez votre code pin : "))
     
    if mdpsaisi == login:
        print("accès autorisé ")
    else :
        print("{} n'est pas le bon mot de passe, vous avez épuisé vos trois essais, revenez plus tard".format(mdpsaisi))

  13. #13
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2020
    Messages : 7
    Par défaut
    ok j'ai compris, le else ferme la boucle donc si je le met avant le if, celui-ci ne peut plus s'appliquer

    encore merci

  14. #14
    Membre Expert

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Par défaut
    Non le else ne ferme pas la boucle.

    C'est l'indentation qui permet de gérer les blocs et de dire quand est ce qu'un bloc se fini

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de mot de passe : Connexion Access
    Par digital prophecy dans le forum Bases de données
    Réponses: 12
    Dernier message: 13/06/2012, 10h23
  2. petit problème de mot de passe crypté PASSWORD()
    Par bris dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 09/02/2007, 16h01
  3. problème de MOT DE PASSE avec mysql
    Par u_brush_u dans le forum Requêtes
    Réponses: 3
    Dernier message: 11/07/2006, 12h35
  4. programme mot de passe
    Par bloowind dans le forum C++
    Réponses: 7
    Dernier message: 15/06/2006, 09h38
  5. Problème de mot de passe
    Par Jo14 dans le forum Access
    Réponses: 1
    Dernier message: 15/04/2006, 10h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo