IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

affichage textes et questions aléatoires


Sujet :

Python

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 133
    Par défaut affichage textes et questions aléatoires
    Bonjour,


    Débutant en programmation, je souhaiterais développer un code qui puisse me permettre d'afficher un par un 20 textes avec pour chacun d'entre eux 5 questions présentées dans un ordre aléatoire (sans remise).
    Concernant la présentation Tkinter et la création des listes j'ai su faire mais je bloque totalement pour trouver les boucles adéquates...

    Si quelqu'un pouvait m'éclairer.
    Un grand merci d'avance.

  2. #2
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    96
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2006
    Messages : 96
    Par défaut
    C'est pas très clair,

    tu a des fonctions pour générer de l'aléatoire dans le module random.

    par exemple:
    si tu a une liste L1 de 20 textes
    et une liste L2 de X questions.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    from random import randrange
    for i in L1:
        #affichage de L1[i] en Tkinter
        for j in range(5):
            a=randrange(len(L2))
            #affichage de L2[a] en Tkinter
            ###############
            #si tu veux supprimer la question:
            del L2[a]
            ###############
    Je sais pas trop si c'est ce que tu cherches.

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Par défaut Proposition pour débuter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    from random import sample
     
    T1 = '\nVoilà des questions :'
    T2 = '\nRépondez à ces questions :'
    T3 = '\nAppliquez vous un peu :'
    T4 = '\nIl faut continuer :'
    T5 = '\nNon, non, revenez :'
    T6 = '\nEncore un dernier effort :'
    T7 = '\nEt pour finir :'
     
    Q0 = 'quelle heure est-il ?'
    Q1 = 'quelle est la densité du plomb ?'
    Q2 = 'combien fait 35 x 76,3 ?'
    Q3 = 'qui a dit : Une guerre entre Européens est une guerre civile ?'
    Q4 = 'en quel siècle a vécu François Villon ?'
    Q5 = 'dans quelle ville se trouve la tour Magne ?'
    Q6 = 'dans quel département du Groenland est né Tino Rossi ?'
    Q7 = "Comment s'appellent les habitants de la ville de Fontainebleau ?"
    Q8 = 'quel animal pond des oeufs mimosa ?'
    Q9 = "en quelle année l'Inde est-elle devenue indépendante ?"
    Q10 = 'citez 2 gaz à effet de serre'
    Q11 = 'le y est-il une voyelle ?'
    Q12 = 'quel auteur a écrit un roman sans utiliser un seul mot avec la lettre E ?'
    Q13 = "à quelle vitesse le sous continent indien plonge-t-il sous l'Himalaya ?"
    Q14 = 'en quelle année Buzz Aldrin a-t-il aluni ?'
    Q15 = "qu'est ce qu'un centaure ?"
    Q16 = "quel age a l'arbre le plus vieux du monde ?"
    Q17 = 'est-ce que ce monde est sérieux ?'
    Q18 = 'donnez les 5 ingrédients du nougat'
    Q19 = 'la latitude de New York est elle plus grande que celle de Budapest ?'
    Q20 = 'en avez vous marre de ces questions ?'
    Q21 = "que signifie l'expression 'de Charybde en Scylla' ?"
    Q22 = 'les Beatles étaient ils la réincarnation des 4 Mousquetaires ?'
    Q23 = "dans quel pays se trouve le désert de l'Atacama ?"
    Q24 = "quel est le nom de la Muse de l'Histoire ?"
    Q25 = "que signifie l'acronyme LASER ?"
    Q26 = "combien de temps l'humanité peut elle survivre ?"
     
    litext = [T1,T2,T3,T4,T5,T6,T7]
     
    liqu = [Q0,Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8,Q9,Q10,Q11,Q12,Q13,Q14,Q15,Q16,Q17,Q18,Q19,Q20,Q21,Q22,Q23,Q24,Q25,Q26]
     
    for texte in litext:
        print texte
        for i in sample(range(27),3):
            print '  ',liqu[i]
    Je sais, des questions se répètent d'un texte à un autre, mais je n'ai pas voulu tout faire, je t'en laisse un peu.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 133
    Par défaut
    Tout d'abord merci pour vos réponses.
    Je m'explique un peu mieux.
    20 textes que je voudrais faire apparaître un par un avec pour chacun d'entre eux 5 questions qui diffèrent à chaque fois pour chaque texte.
    L'ordre des textes est fixe mais je souhaite aléatoriser les questions sans remise.
    Voici le script vous comprendrez mieux :
    là il m'affiche toutes les phrases en même temps je pense
    je voudrais qu'à chaque appui sur "phrases" il me mette la prochaine
    et pareil pour les questions

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    #! /usr/bin/env python
    # -*- coding: cp1252 -*-
     
    from Tkinter import *
    from random import randrange
     
     
     
     
    liste1=["Vous emménagez dans votre nouvel appartement. Vous disposez d'une clé ronde et d'une clé carrée mais vous ne savez plus laquelle d'entre elles ouvre la porte d'entrée. Vous choisissez d'utiliser la clé ronde. La porte s'ouvre.",
    "Victor souhaite encadrer une photo. Il se rend au magasin et a le choix entre un moyen format et un grand format. Ne sachant plus la taille de sa photo, Victor choisit le moyen format. A son retour, il s'aperçoit que la photo est plus grande que le cadre.",
    "Thierry voudrait regarder un documentaire à la télévision mais ne sait plus quelle chaîne diffuse l'émission. Il hésite entre la 2 et la 3. Il met la 2 et s'aperçoit que ce n'est pas la bonne chaîne.",
    "Loïc doit acheter six œufs pour cuisiner. Plutôt que d'aller au supermarché, il se rend chez le boucher qui vend parfois des œufs. Une fois dans la boucherie, Loïc remarque un panier rempli d'œufs et demande au marchand les six œufs.", 
    "Stéphane vient d'acquérir une étagère. Il lui faut un tournevis plat ou cruciforme pour pouvoir la monter. Il regarde dans sa boîte à outils et prend un tournevis cruciforme. En ouvrant le carton, Stéphane s'aperçoit que c'est bien un cruciforme dont il a besoin.", 
    "Ce matin, vous avez un cours d'histoire-géographie. Ne sachant plus quelle matière aura lieu et pour ne pas encombrer votre cartable, vous décidez de prendre uniquement votre livre de géographie. Lorsque le cours débute, le professeur demande de bien vouloir sortir les livres de géographie.", 
    "Vous vous rendez au marché pour acheter des kiwis. Vous savez qu'il existe deux stands où l'on vend des kiwis, celui près de la boulangerie, et celui près du bar. Vous décidez d'aller au stand se trouvant près de la boulangerie et vous vous apercevez que le marchand n'est pas présent aujourd'hui.",
    "Vous avez besoin de farine pour préparer un gâteau. Vous avez deux pots dont l'un est rouge et l'autre vert où vous rangez votre farine ou votre sucre. Vous décidez d'ouvrir le pot rouge et vous vous apercevez que c'est du sucre qu'il y a dedans.",
    "Vous avez deux sujets de mathématiques à préparer pour demain. Un tirage au sort sera réalisé et un sujet sur les deux tombera. Vous choisissez de préparer le sujet n°1. Le lendemain, vous êtes mécontent de découvrir que le sujet tiré au sort est le n°2.",
    "Sébastien doit se rendre à la préfecture en voiture. Il peut passer soit par la voie rapide soit par la ville. Il choisit d'emprunter la voie rapide. Après quelques minutes de route, Sébastien doit stopper son véhicule car un accident empêche la circulation.",
    "Vous devez vous rendre à la gendarmerie, un endroit que vous ne connaissez pas beaucoup. Arrivé à un carrefour, vous êtes un peu perdu et vous ne savez plus si vous devez emprunter la rue de droite ou celle de gauche. Vous décidez de prendre à gauche et vous arrivez finalement à la gendarmerie.",
    "Thibault se rend au magasin pour acheter une ampoule. Dans le rayon, il aperçoit des ampoule à vis et des ampoules à culot. Ne sachant plus quel type d'ampoule il lui faut, Thibault décide d'en prendre une à vis et se rend compte en rentrant chez lui que c'était une ampoule à culot qu'il lui fallait.",  
    "Dans une boutique de vêtement, David essaye un pantalon qu'il voudrait acheter. Il prend un pantalon de taille 42 et 43 et rentre dans la cabine d'essayage. David essaye la taille 43 et s'aperçoit que le pantalon est un peu trop large pour lui.", 
    "Vous êtes attendu chez un ami pour déjeuner. Vous pouvez emprunter le train ou le bus. Vous décidez de prendre le bus mais après quelques kilomètres un pneu crève. Finalement, vous arrivez en retard et le repas est terminé.",
    "Vous voulez brancher votre grille-pain. Une des deux prises dont vous disposez est hors service mais vous ne savez plus si c'est celle du haut ou celle du bas qui ne fonctionne plus. Vous branchez la prise sur celle du haut et le témoin lumineux s'allume.",
    "Vous recherchez un document que vous avez rangé soit dans votre classeur rouge, soit dans votre classeur vert. Vous regardez dans votre classeur rouge et vous ne trouvez pas le document.",
    "Romain doit démonter sa roue de vélo. Il emprunte à son voisin une clé de 14 et une clé de 15 pour pouvoir dévisser l'écrou qui maintient la roue. Il essaie avec la clé de 14 et s'aperçoit qu'elle convient parfaitement.",
    "Vous jouez à un jeu de hasard consistant à trouver la lettre E dissimulée derrière l'une de deux cartes de couleur rouge ou verte. Vous choisissez de retourner la carte rouge et vous trouvez la lettre E.",
    "Luc est à l'hôtel. Il voudrait remplir le lavabo d'eau chaude pour se laver mais les robinets sont usés et rien n'indique lequel d'entre eux fait couler l'eau chaude. Luc ouvre le robinet de droite et de l'eau chaude coule.",
    "Jacques doit réparer sa voiture qui ne démarre plus. D'après le manuel de réparation, deux pannes sont possibles : le démarreur ou la batterie. Il décide de démonter la batterie et d'en essayer une neuve. La voiture démarre sans problème."]
     
     
     
     
    questions11=["Qu'est-ce que vous avez fait ?             ","Qu'est-ce que vous vouliez ?              ", "Quelle clé vouliez-vous utiliser ?        ", "Avez-vous obtenu ce que vous vouliez ?           ", "Êtes-vous satisfait de votre choix?             "]
    questions21=["Qu'est-ce que Victor a fait ?             ","Qu'est-ce qu'il voulait ?              ", "Quel format de cadre voulait-il acheter ?        ", "A-t'il obtenu ce qu'il voulait ?           ", "Est-il satisfait de son choix?             "]
    #questions31
    #.......
     
     
     
     
    fen1 = Tk()
    fen1.configure(bg='white')
    fen1.title("PIA")
    larg,haut=fen1.winfo_screenwidth(),fen1.winfo_screenheight()
    fen1.overrideredirect(1)
    fen1.geometry("%dx%d+0+0"%(larg,haut))
     
     
     
     
    def L1():
        a=0
        while (a<19):
            a=a+1
            cadre=Frame(fen1, width=2000, height=2000)
            cadre.place(x=160, y=120)	
            Message(cadre, text=liste1[a], bg='white',font='Colibri 35', justify='left', width=1000).pack()
     
     
    def QL11():
        #cadre.destroy()
        a=0
        while (a<5):
            a=a+1
            r=randrange(5)
     
        cadre2=Frame(fen1, bg='ivory',width=1000, height= 300, relief=RIDGE)
        cadre2.place(x=160, y=600)
        Message(cadre2, text=questions11[r], bg='white',font='Colibri 35 bold', justify='left', width=1000).pack()    
     
     
     
     
    Button(fen1,text='Phrases',command=L1, bg='grey').place(x=30, y=700)
    Button(fen1,text='Questions',command=QL11, bg='grey').place(x=30, y=750)
    Button(fen1,text='Quitter',command=fen1.destroy, bg='grey').place(x=30, y=800)
     
     
    fen1.mainloop()

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    96
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2006
    Messages : 96
    Par défaut
    Si je comprend bien question11 c'est pour le premier texte question21 pour le deuxième etc...?

    je souhaite aléatoriser les questions sans remise
    Qu'est ce tu entend par "sans remise" ?

    Je ne me souviens plus de Tkinter ca fait trop longtemps mais je ne pense pas que recréer une Frame à chaque itération soit une bonne solution, tu devrais avoir une seule frame et changer son contenu lors d'un clic

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 133
    Par défaut
    oui tout à fait questions 11 correspond au texte 1, questions 21 au texte 2 (j'ai plusieurs listes de textes en fait...)

    sans remise signifie qu'une question ne peut apparaître qu'une fois (comme les boules du loto)

Discussions similaires

  1. question sur affichage texte à l'écran
    Par kripteks dans le forum C
    Réponses: 2
    Dernier message: 26/07/2014, 10h10
  2. [FLASH MX2004] Pb d'affichage texte dynamique
    Par mohican13 dans le forum Flash
    Réponses: 6
    Dernier message: 01/02/2005, 09h55
  3. [FLASH MX 2004] Affichage texte dynamique
    Par Sun3clipse dans le forum Flash
    Réponses: 8
    Dernier message: 25/06/2004, 16h24
  4. affichage texte style splash screen
    Par scorbo dans le forum MFC
    Réponses: 4
    Dernier message: 13/06/2004, 12h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo