Partage
  • Partager sur Facebook
  • Partager sur Twitter

Boucle qui ne respecte pas la condition de sortie

Sujet résolu
    23 mai 2018 à 19:20:44

    Bonjour,

    Pour me perfectionner j'ai tenté de programmer une espèce de guess my number ou le joueur doit trouver un nombre entre 0 et 100 (dans mon code jusqu'à 10 pour tester). Seule problème, ma boucle while présente tant que le joueur ne trouve pas le nombre ne sors jamais et continue de demander au joueur d'entrer un nombre. Pourriez-vous m'aider ? :D 

    #utf-8
    
    def main():
        pass
    
    if __name__ == '__main__':
        main()
    
    from random import *
    rejouer = True
    player_input = -1
    
    while rejouer == True:
    
        nombre_aleat = randint(1,11)
    
        while player_input != nombre_aleat:
    
            player_input == input("Quel nombre entree 0 et 100 a été choisi ?")
            player_input = int(player_input)
    
            if player_input > nombre_aleat:
                print ("C'est moins !")
    
            elif player_input < nombre_aleat:
                print ("C'est plus !")
    
            else:
                print ("Bravo ! C'était bien le %s" % nombre_aleat)
                break
    
    rejouer = False
    
    

    Merci par avance de l'aide que vous pourrez me fournir ! 

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      23 mai 2018 à 19:42:00

      Ligne 32, il manque une indentation pour que se soit correcte
      • Partager sur Facebook
      • Partager sur Twitter
        23 mai 2018 à 19:54:50

        Bonjour, merci de votre réponse. En ayant ajouté l'indentation je ne comprend pas pourquoi mais le programme lit la boucle en permanence. De plus, je ne saisis pas pourquoi mais le console renvoie toujours "C'est plus" pour n'importe quel input de 0 a 10 .. je suis confus je crois que je ne saisis le schéma qu'effectue le programme, et par la j'entend de quelle manière le programme lit les boucles ..
        • Partager sur Facebook
        • Partager sur Twitter
          23 mai 2018 à 19:56:06

          C'est quoi les lignes 1 à 8 dans ton code ?

          EDIT : Si ça fait pas ce que tu veux, c'est qu'il y a un bug, il faut donc inspecter le déroulement du programme et le contenu des variables qui pourraient être à l'origine du problème.

          Ça peut se faire avec des print dans le code, tout bêtement.

          -
          Edité par LoupSolitaire 23 mai 2018 à 19:57:22

          • Partager sur Facebook
          • Partager sur Twitter

          Blond, bouclé, toujours le sourire aux lèvres...

            23 mai 2018 à 20:16:34

            LoupSolitaire a écrit:

            C'est quoi les lignes 1 à 8 dans ton code ?

            Il me semble que c'est à mettre en début de programme pour éviter que le programme ne se lance dans que dans l module main :) je vais tenter alors je reviens si problème 

            • Partager sur Facebook
            • Partager sur Twitter
              23 mai 2018 à 22:26:16

              Pour que ça marche il faut mettre le code dans la fonction main, là ce que tu fais ne sert absolument à rien, tu pourrais supprimer ces lignes, ça changerait rien.

              Les imports doivent être en début de fichier, juste après le shebang et la ligne précisant l'encodage du fichier.

              • Partager sur Facebook
              • Partager sur Twitter

              Blond, bouclé, toujours le sourire aux lèvres...

              Boucle qui ne respecte pas la condition de sortie

              × 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