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 -
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()
A voir également:
- Aide pour fonction aléatoire
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Fonction remplacer sur word - Guide
- Cette fonction n'est pas disponible actuellement tv lg - Forum Téléviseurs
2 réponses
J'ai finalement réussi. Voici mon code:
J'aimerais maintenant que les questions s'affichent aléatoirement. Est-ce que quelqu'un peu m'aider?
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?
Utilise le module random et par exempple shuffle
Voir random — Generate pseudo-random number
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
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()