Partage
  • Partager sur Facebook
  • Partager sur Twitter

probleme avec ma condition

Sujet résolu
    12 février 2013 à 4:52:16

    Ok dans ce code j'ai deux différente condition la premiere fonctionne tres bien mais la seconde ne fonctionne pas et je ne sais pas pourquoi.

    voici le code

    # -*- coding:Utf-8 -*-
    #Un petit programme pour apprendre comment fonctionne les mot de passe
    
    import getpass #importation du module getpass
    from passlib.hash import md5_crypt #importation du module de haschage
    
    i = 0 # Definition de la variable i pour utiliser comme bouleen
    
    
    nom = input("Quel est votre nom ?")
    print ("Bienvenue ", nom, "!")
    while (i == 0):
    
    	motDePasse = getpass.win_getpass("Votre mot de passe : ", stream=None)
    	motDePasseV = getpass.win_getpass("Veuillez entrer votre mot de passe a nouveau : ", stream=None)
    	if (motDePasse != motDePasseV):
    		print ("le mot de passe n'est pas le meme")
    	
    	elif (motDePasse == motDePasseV):
    		print ("Le mot de passe a bien ete enregistre ")
    		mdpHash = md5_crypt.encrypt(motDePasse)
    		del motDePasse
    		del motDePasseV
    		i = 1
    
    print ("1. guest")
    print ("2. Guillaume")
    
    choix = input ("Quel est votre choix ? ")
    
    if (choix == 1):
            print (" Vous etes dans le dossier Guest ")
            
    elif (choix == 2):
            motDePasseEntre = input("Votre mot de passe maitre : ")
            if (md5_crypt.verify(motDePasseEntre, mdpHash) == True):
                    print ("Bienvenue Maitre")
    
    

    Auriez-vous une idée de ce qui pourrait etre le probleme ?

    Merci d'avance 

    Guillaume

    • Partager sur Facebook
    • Partager sur Twitter
      12 février 2013 à 4:57:53

      Tu compares une chaîne de caractères avec des entiers.

      choix = None
      while not choix:
          try:
              choix = int(input('votre choix : '))
          except ValueError:
              print("Vous devez saisir '1' ou '2'.")
              continue
          if not 0 < choix < 3:
              print("UN OU DEUX, PAS '%d', abruti !" % choix) 
              choix = None
      
      if choix == 1:
          # blablabla
      elif choix == 2:
          # blablabla
      

      PS : PEP 8 -- Style guide for Python code

      -
      Edité par nohar 12 février 2013 à 5:24:06

      • Partager sur Facebook
      • Partager sur Twitter
      Zeste de Savoir, le site qui en a dans le citron !
        12 février 2013 à 5:07:18

        Je ne pensais pas avoir a declarer que choix était un int, je croyais que python choisissait le bon type automatiquement pour ma variables.

        Je le saurai pour la prochaine fois.

        Merci pour l'info

        Guillaume

        • Partager sur Facebook
        • Partager sur Twitter
          12 février 2013 à 5:12:26

          guillaume123 a écrit:

          Je ne pensais pas avoir a declarer que choix était un int, je croyais que python choisissait le bon type automatiquement pour ma variables.

          Contrairement à Perl ou PHP, Python ne fait jamais aucune conversion implicite : c'est la différence entre un typage dynamique fort (Python) et un typage dynamique faible (Perl).

          -
          Edité par nohar 12 février 2013 à 5:16:44

          • Partager sur Facebook
          • Partager sur Twitter
          Zeste de Savoir, le site qui en a dans le citron !

          probleme avec ma condition

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown