Partage
  • Partager sur Facebook
  • Partager sur Twitter

boucle while QCM

    8 septembre 2023 à 21:19:16

    Bonjour à tous,

    Je m'exerce sur Python en créant un QCM. Mais j'ai un soucis : lorsque l'utilisateur entre une mauvaise réponse, je souhaite afficher un message : "TRY AGAIN" ( ça c'est ok) et j'aimerais reposer la question pour que l'utilisateur puisse ressaisir une réponse. J'ai donc opter pour la boucle while, mais je m'y prends mal... est-ce que l'un d'entre vous pourrait me filer un coup de main svp ? 


    print("Quel est le nom du président français : A: Macron B: Hollande C: Sarkozy ? ")

    response = input("Quel est votre choix ? ")

    if response == "A" or response == "Macron":
    print(" GOOD JOB ! ")
    elif response == "B" or response == "Hollande":
    print(" TRY AGAIN "),
    elif response == "C" or response == "Sarkozy":
    print(" TRY AGAIN")
    else:
    print("Vous devez choisir parmi les réponses proposées")

    while response == "B" or response == "C":
    print(input("Quel est votre choix ? "))
    • Partager sur Facebook
    • Partager sur Twitter
      8 septembre 2023 à 22:56:54

      ShaïnezBenAmara a écrit:

      est-ce que l'un d'entre vous pourrait me filer un coup de main svp ?

      En français, on dirait: "tant que ce n'est pas la bonne réponse on recommence le même paquet d'instructions".

      Par ailleurs, si on demande de répondre A ou B ou C, c'est pas pour accepter Macron, Sarkozy...

      • Partager sur Facebook
      • Partager sur Twitter
        9 septembre 2023 à 9:42:07

        Hello,

        Comme le dit @mps, pourquoi tester si la réponse sera Macron, ... alors qu'on souhaite une réponse de type A, B ou C, voir D ?

        RESPONSE = "A"
        
        print("Quel est le nom du président français : A: Macron B: Hollande C: Sarkozy ? ")
        
        response = None
        while response != RESPONSE:
            if response is not None:
                print("TRY AGAIN")
            response = input("Quel est votre choix ? ")
        
            if response not in ("A", "B", "C"):
                print("Vous devez choisir parmi les réponses proposées")
                response = None
        print("GOOD JOB !")
        



        • Partager sur Facebook
        • Partager sur Twitter

        Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
        La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

          7 octobre 2023 à 21:09:02

          fred1599 a écrit:

          Hello,

          Comme le dit @mps, pourquoi tester si la réponse sera Macron, ... alors qu'on souhaite une réponse de type A, B ou C, voir D ?

          RESPONSE = "A"
          
          print("Quel est le nom du président français : A: Macron B: Hollande C: Sarkozy ? ")
          
          response = None
          while response != RESPONSE:
              if response is not None:
                  print("TRY AGAIN")
              response = input("Quel est votre choix ? ")
          
              if response not in ("A", "B", "C"):
                  print("Vous devez choisir parmi les réponses proposées")
                  response = None
          print("GOOD JOB !")
          



          Navrée, je ne vois votre réponse que maintenant. Pour répondre à votre question. Je souhaitais faire en sorte que dans le cas où l'utilisateur écrit "Macron", la réponse soit quand même acceptée puisqu'elle n'est pas fausse pour autant... Je ne sais pas si je me suis bien faite comprendre...

          Si la réponse est "A" OU "Macron" alors print "GOOD JOB".  Je sais que dans ce type de QCM on n'accepte soit "A" soit "Macron" mais c'était pour tester un peu :) 

          PS: pour le moment je cherche pas mal sans trouver hahaha !

          -
          Edité par ShaïnezBenAmara 7 octobre 2023 à 21:10:00

          • Partager sur Facebook
          • Partager sur Twitter
            9 octobre 2023 à 16:54:07

            Pour savoir ce qui ne vas pas dans ton code, suis son déroulement à la main:

            Dans ton code initial, on pose la question, on attend un réponse, on traite la réponse (test + affichage); ensuite on fait une boucle tant que reponse est  "B" ou "C" dans laquelle on affiche la saisie de la demande d'une réponse; bref, on a répondu B ou C initialement, on tourne en boucle sur la demande et l'affichage de la saisie utilisateur, puisque la variable reponse n'est pas mise à jour.

            • Partager sur Facebook
            • Partager sur Twitter
              9 octobre 2023 à 18:33:13

              ShaïnezBenAmara a écrit:

              la réponse soit quand même acceptée puisqu'elle n'est pas fausse pour autant... Je ne sais pas si je me suis bien faite comprendre...

              Faites simple (respectez ce qui est demandé) dans un premier temps... puis, si ça vous tente, compliquer les choses.

              De toutes façons, vous devez raconter en français ce que ça doit faire, le traduire en python et retrouver ce que vous avez cherché à faire en relisant le code. C'est ça l'essentiel de l'exercice A, B, C ne sont qu'un prétexte pour vous faire faire cette gymnastique.

              • Partager sur Facebook
              • Partager sur Twitter
                9 octobre 2023 à 21:45:59

                mps a écrit:

                ShaïnezBenAmara a écrit:

                la réponse soit quand même acceptée puisqu'elle n'est pas fausse pour autant... Je ne sais pas si je me suis bien faite comprendre...

                Faites simple (respectez ce qui est demandé) dans un premier temps... puis, si ça vous tente, compliquer les choses.

                De toutes façons, vous devez raconter en français ce que ça doit faire, le traduire en python et retrouver ce que vous avez cherché à faire en relisant le code. C'est ça l'essentiel de l'exercice A, B, C ne sont qu'un prétexte pour vous faire faire cette gymnastique.

                Je comprends ! Merci pour votre aide en tout cas !!

                • Partager sur Facebook
                • Partager sur Twitter

                boucle while QCM

                × 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