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 ? "))
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 !")
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)
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
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.
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.
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 !!
boucle while QCM
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
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)