Fantoume09
Messages postés5Date d'inscriptionsamedi 27 novembre 2010StatutMembreDernière intervention22 juin 2015
-
22 juin 2015 à 19:04
Utilisateur anonyme -
29 juin 2015 à 11:28
Bonjour à tous,
Je suis débutante avec Python, et j'aimerai créer un QCM.
Voici mon programme avec python, qui marche dans le terminal :
import random #Questions Globales # la repetition correspond a la bonne reponse Question = [["Quelle est la capitale de la France ?","A :Nantes","B :Paris","C :Marseilles","B :Paris"], ["Quel est le plus grand ocean 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 frontiere ?","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 departement francais a pour code geographique le 16 ? ","A :Le Cantal","B :La Charente","C :L'Aude","B :La Charente"], ["Dans quel pays se trouve Phnom Penh ?","A :Chine","B :Coree du Nord","C :Cambodge","C :Cambodge"], ["Les habitants de Jerusalem se nomment les ?","A :Yerousalemiens","B :Hierosolymitains","C :Jerusalemistes","B :Hierosolymitains"], [" 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 Km2","B :147 570 km2","C :80 456 km2","B :147 570 km2"]]
qtal = Question #On enleve des elements de la liste pour ne pas repeter la question.
x = 0 while x < 10 : lQst = random.choice(qtal) #On prend une question qtal.remove(lQst) #Qu'on enleve de notre liste de questions print(lQst[0])
print(lQst[1]) #Et ses 3 reponses print(lQst[2]) print(lQst[3])
if lRep == "A": #On récupere le choix lChx = lQst[1] if lRep == "B": lChx = lQst[2] if lRep == "C": lChx = lQst[3]
if lChx == lQst[4]: #rpvrai print("-- VRAI --") else: #Sinon print("-- FAUX --") print(" La bonne reponse était : " + lQst[4] )
print("\n Nouvelle question : \n") x += 1
x = 10 print(" Fin du jeu ! " )
J'aimerai maintenant l'exploiter avec Tkinter :
#!/usr/bin/env python # -*- coding: utf-8 -*-
from Tkinter import * import random
fenetre = Tk() fenetre.title("QCM")
lChx = 0
Question = [["Quelle est la capitale de la France ?","A : Nantes","B : Paris","C : Marseilles","B : Paris"], ["Quel est le plus grand ocean 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 Jerusalem se nomment les ?","A : Yerousalemiens","B : Hierosolymitains","C : Jerusalemistes","B : Hierosolymitains"], [" 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 Km2","B : 147 570 km2","C : 80 456 km2","B : 147 570 km2"]]
def RepA (self): global lChx if lRep == "A": #On récupere le choix lChx = lQst[1]
def RepB (self): global lChx if lRep == "B": #On récupere le choix lChx = lQst[2]
def RepC (self): global lChx if lRep == "C": #On récupere le choix lChx = lQst[3]
def verification(): if lChx == lQst[4]: #rpvrai true = Label(fenetre, text = "--VRAI--") true.pack() else : #Sinon false = Label(fenetre, text = "--FAUX--") false.config(text = " La bonne réponse était - " + lQst[4] ) false.pack()
def selection() : selection = "Vous avez choisi la réponse " + str(value.get()) sel = Label(fenetre, text = selection) sel.pack()
qtal = Question #On enlève des éléments de la liste pour ne pas répéter la question.
new = Label(fenetre, text = "\n Nouvelle question : \n") new.pack()
x = 0 while x < 10 :
lQst = random.choice(qtal) #On prend une question qtal.remove(lQst) #Qu'on enlève de notre liste de questions
value = StringVar() question = Label(fenetre, text = lQst[0]) question.pack() bouton1 = Radiobutton(fenetre, text = lQst[1], variable = value, value = 'A', command = selection) bouton1.deselect() bouton2 = Radiobutton(fenetre, text = lQst[2], variable = value, value = 'B', command = selection) bouton2.deselect() bouton3 = Radiobutton(fenetre, text = lQst[3], variable = value, value = 'C', command = selection) bouton3.deselect() bouton1.pack() bouton2.pack() bouton3.pack()
end = Label(fenetre, text = " Fin du jeu ! ") end.pack()
fenetre.mainloop()
J'ai un problème avec les Vrai/Faux qui ne s'affichent pas.
Et j'aimerai que la question précédente s'efface avant de passer à la suivante, mais je ne trouve pas la commande pour faire ça.