Aide pour fonction aléatoire

Résolu
Clementine1998 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention   -  
Clementine1998 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, j'ai crée un QCM où j'ai réussi à mettre les questions aléatoirement. Le problème c'est que les questions peuvent se répéter deux fois. Est-ce que quelqu'un peut m'aider?

from tkinter import *
import random

fen=Tk()

Consigne=Label(fen,text="Cocher la bonne reponse")
Consigne.pack()

#Questions Globales # la repetition correspond a la bonne reponse
ListeDeQuestionsReponses = [["Combien de couleurs sur le drapeau Francais?","3","2","4"],
["De quelle couleur est le rond sur le drapeau Chine","Rouge","Bleu","Vert"],
["Combien de doigts sur une main?","5","2","3"]]

x = len(ListeDeQuestionsReponses)

for i in range(x) :
QuestionAuHasard=random.choice(ListeDeQuestionsReponses)#On prend une question #Qu'on enleve de notre liste de questions
Qx=[QuestionAuHasard]
len(Qx)
Q0 = Qx[0][0]
R1 = Qx[0][1]
R2 = Qx[0][2]
R3 = Qx[0][3]
Question = Label(fen, text = Q0)
Question.pack()
Reponse1 = Label(fen, text = R1)
Reponse1.pack()
Reponse2 = Label(fen, text = R2)
Reponse2.pack()
Reponse3 = Label(fen, text = R3)
Reponse3.pack()

fen.mainloop()

2 réponses

Clementine1998 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai finalement réussi. Voici mon code:

from tkinter import *
import random

fen=Tk()

Consigne=Label(fen,text="Cocher la bonne reponse")
Consigne.pack()
AllerAlaligne=Label(fen, text = "")
AllerAlaligne.pack()

Question = [["Combien de couleurs sur le drapeau Francais?","3","2","4"],
["De quelle couleur est le rond sur le drapeau Chine","Rouge","Bleu","Vert"],
["Combien de doigts sur une main?","5","2","3"]]

x = len(Question)

for i in range(x) :
QuestionAuHasard=random.choice(Question)
Qx=[QuestionAuHasard]
len(Qx)
Q0 = Qx[0][0]
R1 = Qx[0][1]
R2 = Qx[0][2]
R3 = Qx[0][3]
quest=Label(fen,text= Q0 )
quest.pack()
rep1=Label(fen, text= R1)
rep2=Label(fen, text= R2)
rep3=Label(fen, text= R3)
rep1.pack()
rep2.pack()
rep3.pack()
AllerAlaligne=Label(fen, text = "")
AllerAlaligne.pack()
PlaceNombre=Question.index(QuestionAuHasard)
Place=int(PlaceNombre)
del(Question[Place])


fen.mainloop()


J'aimerais maintenant que les questions s'affichent aléatoirement. Est-ce que quelqu'un peu m'aider?
0
jisisv Messages postés 3645 Date d'inscription   Statut Modérateur Dernière intervention   934
 
Utilise le module random et par exempple shuffle
Python 2.7.11+ (default, Mar 30 2016, 21:00:42) 
[GCC 5.3.1 20160323] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import random
>>> anArray = range(1, 11)
>>> random.shuffle(anArray)
>>> anArray
[1, 3, 7, 8, 9, 4, 10, 2, 6, 5]

Voir random — Generate pseudo-random number

0
Clementine1998 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention  
 
Je comprend pas pourquoi les réponses ne s'affichent pas quand on lance le programme

from tkinter import *
import random

fen=Tk()

Consigne=Label(fen,text="Cocher la bonne reponse")
Consigne.pack()

AllerAlaligne=Label(fen, text = "") #juste pour la présentation
AllerAlaligne.pack()


ListeDeQuestionsReponses = [["Combien de couleurs sur le drapeau Francais?","3","2"],
["De quelle couleur est le rond sur le drapeau Chine","Rouge","Bleu"],
["Combien de doigts sur une main?","5","2"]]

x = len(ListeDeQuestionsReponses)

for i in range(x) :
QuestionAuHasard=random.choice(ListeDeQuestionsReponses)
Qx=[QuestionAuHasard]
len(Qx)
Q0 = Qx[0][0]
R1 = Qx[0][1]
R2 = Qx[0][2]
Question=Label(fen,text = Q0 )
Question.pack()

ListeDeReponse=[R1,R2]
y=len(ListeDeReponse)
for j in range (y) :
ReponseAuHasard=random.shuffle(ListeDeReponse)
Reponse=Label(fen,text=ReponseAuHasard)
Reponse.pack()


AllerAlaligne=Label(fen, text = "")
AllerAlaligne.pack()

PlaceNombre=ListeDeQuestionsReponses.index(QuestionAuHasard)
Place=int(PlaceNombre)
del(ListeDeQuestionsReponses[Place])

fen.mainloop()
0
Clementine1998 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention   > Clementine1998 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention  
 
Je précise aussi que je compte mettre des Checkbutton devant les réponses et un bouton valider qui dira si la réponse est bonne ou non. C'est compatible avec la fonction random.shuffle?
0