Bonsoir, J'aimerais réaliser un QCM avec un programme python pour se faire j'ai repris celui d'un de mes camarades mais il y a une erreur en effet, je n'arrive
Question
J'aimerais réaliser un QCM avec un programme python pour se faire j'ai repris celui d'un de mes camarades mais il y a une erreur en effet, je n'arrive pas à rentrer ma réponse sans que le programme fonctionne ..
Est-il possible que vous m'aidiez ?
Voici le programme :import random
#Questions Globales # la répétition correspond a la bonne réponse
print(" Taper la bonne réponse A,B ou C ( ne pas oublier les majuscules , c'est une série de 10 questions . Si vous répondez autre chose que A B C le programme plantera il faudra le relancer . " )
Question = [["Quelle est la capitale de la France ?","A :Nantes","B :Paris","C :Marseilles","B :Paris"],
["Quel est le plus grand océan du monde ? ","A :Le Pacifique","B :L'Atlantique","C :La mer Noire","A :Le Pacifique"],
["Avec quel pays la France n'a t-elle aucune frontière ?","A :Autriche","B :Belgique","C :Monaco","A :Autriche"],
["Dans quelle ville ce trouve le pont Vasco de Gamma ?","A :Madrid","B :Barcelone","C :Lisbonne","C :Lisbonne"],
["Quelle est la capitale des Phillipines ?","A :Manille","B :Jakarta","C :Wellington","A :Manille"] ,
["Quel département français a pour code géographique le 16 ? ","A :Le Cantal","B :La Charente","C :L'Aude","B :La Charente"],
["Dans quel pays se trouve Phnom Penh ?","A :Chine","B :Corée du Nord","C :Cambodge","C :Cambodge"],
["Les habitants de Jérusalem se nomment les ?","A :Yérousalémiens","B :Hiérosolymitains","C :Jérusalemistes","B :Hiérosolymitains"],
[" La France compte environ ","A :37 256 communes ?","B :25 894 communes ? ","C :36 681 communes ?","C :36 681 communes ?"],
["La superficie du Bandgladesh est de ? ","A :150 254 Km²","B :147 570 km²","C :80 456 km²","B :147 570 km²"]]
qtal = Question #On enleve des éléments de la liste pour ne pas répéter la question.
x = 0
while x < 10 :
for i in range(0,1):
lQst = random.choice(qtal) #On prend une question
qtal.remove(lQst) #Qu'on enleve de notre liste de questions
print(lQst[0]) #On l'affiche
print(lQst[1]) #Les 3 réponses
print(lQst[2])
print(lQst[3])
lRep = ""
lRep != ["A","B","C"]
if lRep == "A": #On récupère le choix
lChx = lQst[1]
if lRep == "B":
lChx = lQst[2]
if lRep == "C":
lChx = lQst[3]
if lChx == lQst[4]: #rpvrai
print("-- VRAI --\n")
print("Nouvelle question : " )
x += 1
else: #Sinon
print("-- FAUX --\n")
print(" La bonne réponse était : "),
print(lQst[4])
print("Nouvelle question : " )
x += 1
x = 10
print(" Fin du jeu ! " )
et l'erreur que m'indique l'ordinateur :
Taper la bonne réponse A,B ou C ( ne pas oublier les majuscules , c'est une série de 10 questions . Si vous répondez autre chose que A B C le programme plantera il faudra le relancer .
La France compte environ
A :37 256 communes ?
B :25 894 communes ?
C :36 681 communes ?
Votre réponse: A
Traceback (most recent call last):
File "C:/Python27/QCM FAUX2.py", line 37, in
lRep = str(input("Votre réponse: ")) #On redemande
File "", line 1, in
NameError: name 'A' is not defined
Par avance, merci
1 Réponse
-
1. Réponse caylus
Réponse :
Bonjour,
Explications :
import random
def AskRep(wQuest):
print (wQuest[0])
print(wQuest[1]) #Les 3 réponses
print(wQuest[2])
print(wQuest[3])
aRep = ""
while not(aRep in ["A","B","C"]):
aRep = str(input("Votre réponse: A B C ")).upper()
return aRep
#------------------------------------------------------------
Question = [["Quelle est la capitale de la France ?",
"A :Nantes",
"B :Paris",
"C :Marseilles",
"B"],
["Quel est le plus grand océan du monde ? ",
"A :Le Pacifique",
"B :L'Atlantique",
"C :La mer Noire",
"A"],
["Avec quel pays la France n'a t-elle aucune frontière ?",
"A :Autriche",
"B :Belgique",
"C :Monaco",
"A"],
["Dans quelle ville ce trouve le pont Vasco de Gamma ?",
"A :Madrid",
"B :Barcelone",
"C :Lisbonne",
"C"],
["Quelle est la capitale des Phillipines ?",
"A :Manille",
"B :Jakarta",
"C :Wellington",
"A"] ,
["Quel département français a pour code géographique le 16 ? ",
"A :Le Cantal",
"B :La Charente",
"C :L'Aude",
"B"],
["Dans quel pays se trouve Phnom Penh ?",
"A :Chine",
"B :Corée du Nord",
"C :Cambodge",
"C"],
["Les habitants de Jérusalem se nomment les ?",
"A :Yérousalémiens",
"B :Hiérosolymitains",
"C :Jérusalemistes",
"B"],
[" La France compte environ ",
"A :37 256 communes ?",
"B :25 894 communes ? ",
"C :36 681 communes ?",
"C"],
["La superficie du Bandgladesh est de ? ",
"A :150 254 Km²",
"B :147 570 km²",
"C :80 456 km²",
"B"]]
score=0
qtal = Question
nb=len(qtal)
#------------------------------------------------------------
print (" Ce QCM est une série de ",nb," questions " )
x = 0
while x < nb:
lQst = random.choice(qtal) #On prend une question
lRep=AskRep(lQst)
if lRep == lQst[4]:
score+=1
print(lQst[0]) #On l'affiche
qtal.remove(lQst) #Qu'on enleve de notre liste de questions
print("-- VRAI --\n")
else:
print(" réponse fausse")
x=x+1
print(" Fin du jeu ! \n","score=",score,"/",nb )
#------------------------------------------------------------