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

Tkinter Python Discussion :

QCM sur python


Sujet :

Tkinter Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2014
    Messages : 2
    Points : 3
    Points
    3
    Par défaut QCM sur python
    Bonsoir,
    j'ai réalisé un petit QCM sur python dans le cadre du lycée mais j'ai un petit problème quand je lance mon programme. Quand le programme me propose les réponses pour le QCM, les réponses sont entre crochets et ça ne fait pas tres propre. De plus je n'arrive pas à sauter des lignes entre les questions : les \n ne fonctionnent pas ...

    Merci par avance de m'accorder un peu de votre temps pour me débloquer

    Bonne soirée !
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    Mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 659
    Points : 8 442
    Points
    8 442
    Par défaut
    Salut,

    Je n'ai pas d'interpreteur sur mon poste actuel, donc je me base uniquement sur ton code.

    L12 & 13, j'ai l'impression qu'il y a une petite cafouille dans les ". Il faut que tu utilises les caractères d'échappement (ex: \") si tu veut utiliser ce caractère dans une string. Tu peut aussi utiliser les simples et doubles cotes associées, ex: 'il dit: "bonjour" '. Cela sera alors correctement interprêté.

    Ensuite, j'ai l'impression que ligne 13, tu as créé une sorte de matrice [m][n], mais quand tu y fait appel, tu la considère comme une simple liste. De fait, il est normal que les corchets appraissent.

    Enfin, les \n ne sont pas interprêté pour la même raison. Tu ne print pas la chaine, mais une ligne de ta matrice. Il t'affiche donc le contenu, data, et non ta string
    "La connaissance appartient à tout le monde" (Film Antitrust)

    Tout le nécessaire pour Python:
    *News/Accueil *Cours/tutoriels *FAQ
    *Forums *Outils dédiés *Mon espace personnel avec mes Articles, Cours et Tutoriels

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 21
    Points : 23
    Points
    23
    Par défaut
    Déjà je vous remercie pour votre aide, maintenant on a un tout autre problème .. C'est avec tkinter , quand on appuie sur la touche début, les questions se lance mais sur la partie noir et lorsque l'on clique sur oui , une nouvelle fenêtre s'ouvre , mais on ne sait pas comment insérer les questions avec les choix dans cette nouvelle fenêtre..


    Voici le code :
    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
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    from math import *
     
    import random
     
     
    #Liste + variable
     
    compteur=0
    nombre_de_question=0
     
    liste_questions=["Question  : Quelle est la capitale du Liban ?\n ","Question  : Quand l'armistice de la seconde Guerre Mondiale a-t-elle été signée ? ","Question  : Quelle est la capitale de l'Estonie /n? ","Question  : Quelle est la langue maternelle la plus parlée au monde ? \n","Question  : Quelle est la langue officielle au Nigeria \n?","Question  : Qui a réalisé le père noel est une ordure ? \n","Question  : Quel est l'état le plus grand des Etats-Unis ?","Question  : Qui a écrit l'Assommoir ? \n","Question  : La pénicilline a été découverte par : \n","Question  : Le premier président de la République était : \n","Question  : En quelle année ont été créées les régions ? \n","Question : Que collectionne un conchyophile ? \n","Question  : Quelle est la ville la plus peuplée du monde ? \n","Question  : Quelle formule mathématique permet d'établir les développements limités ? \n","Question  : Quel évènement a marqué l'année 1935 ? \n","Question : Quelle est la hauteur de la Tour Eiffel ? \n","Question  : Quel est l'organe le plus volumineux et le plus massif parmi ceux-ci ? \n","Question : En quelle année Neil Amstrong a-t-il posé le premier pas sur la lune ? \n","Question : Quel chanteur fait partie des Rolling Stones ? \n","Question : Quelle équipe de football a remporté la première coupe du monde en 1930 ? \n"]
    liste_choix=[["1) Beyrouth","2) Damas","3) Rabat "],["1) 8 mai 1945","2) 11 novemble 1945","3) 18 juin 1940 "],["1) Riga","2) Tallin","3) Vilnius"],["1) L'Anglais,2) L'espagnol,  3) le chinois madarin "],["1) L'anglais","2) Le nigerian","3) L'afrikaans "],["1) Coline Serreau","2) Gerard Oury","3) Jean Marie Poiré "],["1) Le Texas","2) L'Alaska","3) Le Montana "],["1) Stendhal","2) Flaubert","3) Zola "],["1) Ian Fleming","2) Alexander Flening","3) Marie Curie "],["1) R.Coty","2) A.Pinay","3) V.Auriol "],["1) 1806","2) 1956","3) 1901 "],["1) Des bières","2) des coquillages","3) Des animaux empaillés "],["1) Tokyo","2) Mexico","3) New York "],["1) Schrodinger","2) Crutz","3) Taylor "],["1) Les lois sociales du Front populaire","2) Lois de Nüremberg","3) Hitler chancelier "],["1) 250 mètres","2) 324 mètres","3) 295 mètres "],["1) Le foie","2) L'estomac","3) Le colon "],["1) 1967","2) 1969","3) 1971 "],["1) Jonh Lennon","2) Mick Jagger","3) Brian Johnson "],["1) Italie","2) Brésil","3) Uruguay "]]
    liste_reponse=[1,1,2,3,1,3,2,3,2,3,2,2,1,3,2,2,1,2,2,3]
     
    #début du programme 
     
    def quest():
    	newWindow= Tk()
    	newWindow.title('Question')
    	newWindow.geometry("400x300+600+400")
    	Mafenetre.destroy()
    	global compteur 
    	print("commençons !\n ")
     
    	while liste_questions :
     
    		n=random.randint(0,len (liste_questions)-1)
    		print (liste_questions[n])
    		print (liste_choix[n])
    		Q=int(input("quel numéros choississez-vous ?"))
    		if Q == liste_reponse[n] :
    			 compteur = compteur +1
     
     
    		liste_questions.pop(n)
    		liste_choix.pop(n)
    		liste_reponse.pop(n)
     
     
    	print ("c'est finis")
     
     
     
    #système de note + commentaire :		
     
    	print("Note:")	
    	if compteur == 20 :
    		showinfo('NOTE', "20/20...Que pouvons nous dire... si ce n'est BRAVO")		
     
    	elif 19>=compteur>=16 :
    		showinfo('NOTE', "19/20 C'est presque excellent... Courage ! Le succes est au bout du chemin.")
     
    	elif 15>=compteur>=12 :
    		showinfo('NOTE',"Tu as entre 12/20 et 15/20. Ne sois pas modeste, tu peux mieux faire !")
     
    	elif 11>=compteur>=10 :
    		showinfo('NOTE',"Tu as entre 10/20 et 11/20. Il faut tra-vai-ller !")
     
    	elif 9>=compteur>=6 :
    		showwarning('NOTE', "Tu as entre 9 et 6. Tu sais ce qu'il te reste à faire ..." )
     
    	elif 5>=compteur>=0 :
    		showwarning('NOTE',"Tu as en dessous de 5/20... Sans commentaire...")
     
     
     
     
    #~ else :
    	#~ print (" à une prochaine fois")	
     
     
    # Création de la fenêtre principale (main window)
    from tkinter import *
    from tkinter.messagebox import *
    Mafenetre = Tk()
     
    Mafenetre.title('QCM')
    Mafenetre.geometry('400x300+600+400')
     
    Label1 = Label(Mafenetre, text = 'Voici un petit QCM présenté par Jonathan, Thibault , Landry ')
    Label1.pack(side = TOP, padx = 5, pady = 5)
     
     
    Label2 = Label(Mafenetre, text = 'Voulez- vous commencez ? ')
    Label2.pack(side = LEFT, padx = 5, pady = 5)
     
    Bouton = Button(Mafenetre, text ='Oui', command = quest )
    Bouton.pack(side = LEFT, padx = 5, pady = 5)
     
    Bouton = Button(Mafenetre, text ="Non", command = Mafenetre.destroy )
    Bouton.pack(side = LEFT, padx = 5, pady = 5)
     
     
     
    Mafenetre.mainloop()

    Merci d'avance , car tkinter nous l'avons vu que pendant 2h en cours et encore c'était des fonctions toutes simple !

  4. #4
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2014
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Bonsoir,

    merci deusyss pour votre réponse. J'ai essayé de modifier le programme mais là ca n'affiche plus rien... je suis completement perdu ...
    merci d'essayer de me débloquer

    bonne soirée
    Fichiers attachés Fichiers attachés

  5. #5
    Expert éminent

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    Mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 659
    Points : 8 442
    Points
    8 442
    Par défaut
    Hello,


    Bon je suis parti de ton code avec Tkinter.

    Si tu veut tout faire propre, je te conseille de respecter les PEP. Cela viendra avec l'experience, mais cela ne rendra ton code que meilleur. Voici donc ton code fonctionnel. La première ligne est là car je travaille sous Linux. Petite note, tkinter, de memoire s'utilise differemment entre python 2.X et python 3.X, donc fait attention à cela. Enfin, quand tu fait un print, attention à l'encodage, car là les caractères non ASCII passeront mal.

    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
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
     
    #Ligne 1 necessaire sous Linux
     
    from Tkinter import *
    from math import *
    import random
     
     
     
     
    #Liste + variable
    compteur=0
    nombre_de_question=0
     
    liste_questions=["Question  : Quelle est la capitale du Liban ?\n ",\
    				"Question  : Quand l'armistice de la seconde Guerre Mondiale a-t-elle été signée ? ",\
    				"Question  : Quelle est la capitale de l'Estonie /n? ",\
    				"Question  : Quelle est la langue maternelle la plus parlée au monde ? \n",\
    				"Question  : Quelle est la langue officielle au Nigeria \n?",\
    				"Question  : Qui a réalisé le père noel est une ordure ? \n",\
    				"Question  : Quel est l'état le plus grand des Etats-Unis ?",\
    				"Question  : Qui a écrit l'Assommoir ? \n",\
    				"Question  : La pénicilline a été découverte par : \n",\
    				"Question  : Le premier président de la République était : \n",\
    				"Question  : En quelle année ont été créées les régions ? \n",\
    				"Question : Que collectionne un conchyophile ? \n",\
    				"Question  : Quelle est la ville la plus peuplée du monde ? \n",\
    				"Question  : Quelle formule mathématique permet d'établir les développements limités ? \n",\
    				"Question  : Quel évènement a marqué l'année 1935 ? \n",\
    				"Question : Quelle est la hauteur de la Tour Eiffel ? \n",\
    				"Question  : Quel est l'organe le plus volumineux et le plus massif parmi ceux-ci ? \n",\
    				"Question : En quelle année Neil Amstrong a-t-il posé le premier pas sur la lune ? \n",\
    				"Question : Quel chanteur fait partie des Rolling Stones ? \n",\
    				"Question : Quelle équipe de football a remporté la première coupe du monde en 1930 ? \n"]
     
    liste_choix=["1) Beyrouth,2) Damas,3) Rabat ",\
    			"1) 8 mai 1945,2) 11 novemble 1945,3) 18 juin 1940 ",\
    				"1) Riga,2) Tallin,3) Vilnius",\
    				"1) L'Anglais,2) L'espagnol,  3) le chinois madarin ",\
    				"1) L'anglais,2) Le nigerian,3) L'afrikaans ",\
    				"1) Coline Serreau,2) Gerard Oury,3) Jean Marie Poiré ",\
    				"1) Le Texas,2) L'Alaska,3) Le Montana ",\
    				"1) Stendhal,2) Flaubert,3) Zola ",\
    				"1) Ian Fleming,2) Alexander Flening,3) Marie Curie ",\
    				"1) R.Coty,2) A.Pinay,3) V.Auriol ",\
    				"1) 1806,2) 1956,3) 1901 ",\
    				"1) Des bières,2) des coquillages,3) Des animaux empaillés ",\
    				"1) Tokyo,2) Mexico,3) New York ",\
    				"1) Schrodinger,2) Crutz,3) Taylor ",\
    				"1) Les lois sociales du Front populaire,2) Lois de Nüremberg,3) Hitler chancelier ",\
    				"1) 250 mètres,2) 324 mètres,3) 295 mètres ",\
    				"1) Le foie,2) L'estomac,3) Le colon ",\
    				"1) 1967,2) 1969,3) 1971 ",\
    				"1) Jonh Lennon,2) Mick Jagger,3) Brian Johnson ",\
    				"1) Italie,2) Brésil,3) Uruguay "]
     
    liste_reponse=[1,1,2,3,1,3,2,3,2,3,2,2,1,3,2,2,1,2,2,3]
     
     
     
     
    #début du programme 
    def quest():
    	newWindow= Tk()
    	newWindow.title('Question')
    	newWindow.geometry("400x300+600+400")
    	Mafenetre.destroy()
    	global compteur 
    	print("commençons !\n ")
     
    	while liste_questions :
    		n=random.randint(0,len (liste_questions)-1)
    		print (liste_questions[n])
    		print (liste_choix[n])
    		Q=int(input("quel numéros choississez-vous ?"))
    		if Q == liste_reponse[n]:
    			 compteur = compteur +1
    		liste_questions.pop(n)
    		liste_choix.pop(n)
    		liste_reponse.pop(n)
    	print ("c'est finis")
     
    	#système de note + commentaire :		
    	print("Note:")	
    	if compteur == 20 :
    		showinfo('NOTE', "20/20...Que pouvons nous dire... si ce n'est BRAVO")		
     
    	elif 19>=compteur>=16 :
    		showinfo('NOTE', "19/20 C'est presque excellent... Courage ! Le succes est au bout du chemin.")
     
    	elif 15>=compteur>=12 :
    		showinfo('NOTE',"Tu as entre 12/20 et 15/20. Ne sois pas modeste, tu peux mieux faire !")
     
    	elif 11>=compteur>=10 :
    		showinfo('NOTE',"Tu as entre 10/20 et 11/20. Il faut tra-vai-ller !")
     
    	elif 9>=compteur>=6 :
    		showwarning('NOTE', "Tu as entre 9 et 6. Tu sais ce qu'il te reste à faire ..." )
     
    	elif 5>=compteur>=0 :
    		showwarning('NOTE',"Tu as en dessous de 5/20... Sans commentaire...")
    #~ else :
    	#~ print (" à une prochaine fois")	
     
     
     
     
    # Création de la fenêtre principale (main window)
    def ihm():
    	Mafenetre = Tk()
     
    	Mafenetre.title('QCM')
    	Mafenetre.geometry('400x300+600+400')
     
    	Label1 = Label(Mafenetre, text = 'Voici un petit QCM présenté par Jonathan, Thibault , Landry ')
    	Label1.pack(side = TOP, padx = 5, pady = 5)
     
     
    	Label2 = Label(Mafenetre, text = 'Voulez- vous commencez ? ')
    	Label2.pack(side = LEFT, padx = 5, pady = 5)
     
    	Bouton = Button(Mafenetre, text ='Oui', command = quest )
    	Bouton.pack(side = LEFT, padx = 5, pady = 5)
     
    	Bouton = Button(Mafenetre, text ="Non", command = Mafenetre.destroy )
    	Bouton.pack(side = LEFT, padx = 5, pady = 5)
     
    	return Mafenetre
     
     
     
     
    if __name__ == "__main__":
    	Mafenetre = ihm()
    	Mafenetre.mainloop()
    "La connaissance appartient à tout le monde" (Film Antitrust)

    Tout le nécessaire pour Python:
    *News/Accueil *Cours/tutoriels *FAQ
    *Forums *Outils dédiés *Mon espace personnel avec mes Articles, Cours et Tutoriels

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 21
    Points : 23
    Points
    23
    Par défaut
    Je tiens à te remercier ! ça fait déjà plus propre !

    Après en ce qui consiste Tkinter je suis bloqué lorsque la fenêtre s'ouvre après que l'on ait mis oui , car je voudrais mettre les choix et question dans cette fenetre...

    je pense que le problème est que la fenêtre qui s'ouvre après avoir mis oui est définit dans la fonction "quest" et qu'elle est avant la suite du programme ..

  7. #7
    Expert éminent

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    Mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 659
    Points : 8 442
    Points
    8 442
    Par défaut
    tu as utiliser un label pour afficher du texte dans ton IHM. Utilise ce label pour afficher ta question et tes options. Pour la reponse, il faut utiliser une entry. Tu as a chaque fois le choix de faire apparaitre ou non les elements graphiques que tu as ajouter à une fenetre. N'etant pas expert tkinter, je ne pourrais malheureusement t'aider là dessus.

    En tout cas tu n'es pas obliger de créer une nouvelle fenetre je pense. Tu dois pouvoir reutiliser la meme, mais en modifiant les widgets en place.
    "La connaissance appartient à tout le monde" (Film Antitrust)

    Tout le nécessaire pour Python:
    *News/Accueil *Cours/tutoriels *FAQ
    *Forums *Outils dédiés *Mon espace personnel avec mes Articles, Cours et Tutoriels

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 21
    Points : 23
    Points
    23
    Par défaut
    mais pour afficher dans un label par exemple, il faut que ça affiche chaque question , donc je dois faire une fonction malheuresement je ne sais pas la quelle..

    sinon je te remercie pour ton aide !

  9. #9
    Expert éminent

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    Mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 659
    Points : 8 442
    Points
    8 442
    Par défaut
    Tu dois créer deux nouvelles fonctions: une fonction qui effacera le label, et affichera la nouvelle question et solution, puis une autre qui lira la reponse saisie et comptera les points.
    "La connaissance appartient à tout le monde" (Film Antitrust)

    Tout le nécessaire pour Python:
    *News/Accueil *Cours/tutoriels *FAQ
    *Forums *Outils dédiés *Mon espace personnel avec mes Articles, Cours et Tutoriels

  10. #10
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 21
    Points : 23
    Points
    23
    Par défaut
    Pour compter les points se sera showinfo etc qui à la fin affichera un message !

    mais oui ça fait bien deux fonctions cependant celle qui mettra les questions et choix j'ai déjà essayé mais je ne sais pas ou commencer ^^

  11. #11
    Expert éminent

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    Mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 659
    Points : 8 442
    Points
    8 442
    Par défaut
    Voici une ebauche de code non testée mais qui te montre la structure à adopter:

    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
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
     
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
     
    #Ligne 1 necessaire sous Linux
     
    from Tkinter import *
    from math import *
    import random
     
     
     
     
    class MonIhm():
    # Création de la fenêtre principale (main window)
     
    	def __init__(self):
    		self.compteur=0
    		self.nombre_de_question=0
     
    		self.liste_questions=["Question  : Quelle est la capitale du Liban ?\n ",\
    							"Question  : Quand l'armistice de la seconde Guerre Mondiale a-t-elle été signée ? ",\
    							"Question  : Quelle est la capitale de l'Estonie /n? ",\
    							"Question  : Quelle est la langue maternelle la plus parlée au monde ? \n",\
    							"Question  : Quelle est la langue officielle au Nigeria \n?",\
    							"Question  : Qui a réalisé le père noel est une ordure ? \n",\
    							"Question  : Quel est l'état le plus grand des Etats-Unis ?",\
    							"Question  : Qui a écrit l'Assommoir ? \n",\
    							"Question  : La pénicilline a été découverte par : \n",\
    							"Question  : Le premier président de la République était : \n",\
    							"Question  : En quelle année ont été créées les régions ? \n",\
    							"Question : Que collectionne un conchyophile ? \n",\
    							"Question  : Quelle est la ville la plus peuplée du monde ? \n",\
    							"Question  : Quelle formule mathématique permet d'établir les développements limités ? \n",\
    							"Question  : Quel évènement a marqué l'année 1935 ? \n",\
    							"Question : Quelle est la hauteur de la Tour Eiffel ? \n",\
    							"Question  : Quel est l'organe le plus volumineux et le plus massif parmi ceux-ci ? \n",\
    							"Question : En quelle année Neil Amstrong a-t-il posé le premier pas sur la lune ? \n",\
    							"Question : Quel chanteur fait partie des Rolling Stones ? \n",\
    							"Question : Quelle équipe de football a remporté la première coupe du monde en 1930 ? \n"]
     
    		self.liste_choix=["1) Beyrouth,2) Damas,3) Rabat ",\
    						"1) 8 mai 1945,2) 11 novemble 1945,3) 18 juin 1940 ",\
    						"1) Riga,2) Tallin,3) Vilnius",\
    						"1) L'Anglais,2) L'espagnol,  3) le chinois madarin ",\
    						"1) L'anglais,2) Le nigerian,3) L'afrikaans ",\
    						"1) Coline Serreau,2) Gerard Oury,3) Jean Marie Poiré ",\
    						"1) Le Texas,2) L'Alaska,3) Le Montana ",\
    						"1) Stendhal,2) Flaubert,3) Zola ",\
    						"1) Ian Fleming,2) Alexander Flening,3) Marie Curie ",\
    						"1) R.Coty,2) A.Pinay,3) V.Auriol ",\
    						"1) 1806,2) 1956,3) 1901 ",\
    						"1) Des bières,2) des coquillages,3) Des animaux empaillés ",\
    						"1) Tokyo,2) Mexico,3) New York ",\
    						"1) Schrodinger,2) Crutz,3) Taylor ",\
    						"1) Les lois sociales du Front populaire,2) Lois de Nüremberg,3) Hitler chancelier ",\
    						"1) 250 mètres,2) 324 mètres,3) 295 mètres ",\
    						"1) Le foie,2) L'estomac,3) Le colon ",\
    						"1) 1967,2) 1969,3) 1971 ",\
    						"1) Jonh Lennon,2) Mick Jagger,3) Brian Johnson ",\
    						"1) Italie,2) Brésil,3) Uruguay "]
     
    		self.liste_reponse=[1,1,2,3,1,3,2,3,2,3,2,2,1,3,2,2,1,2,2,3]
     
    		self.construct_ihm()
     
     
     
     
    	def construct_ihm(self):		
    		self.Mafenetre = Tk()
     
    		self.Mafenetre.title('QCM')
    		self.Mafenetre.geometry('400x300+600+400')
     
    		self.Label1 = Label(self.Mafenetre, text = 'Voici un petit QCM présenté par Jonathan, Thibault , Landry ')
    		self.Label1.pack(side = TOP, padx = 5, pady = 5)
     
     
    		self.Label2 = Label(self.Mafenetre, text = 'Voulez- vous commencez ? ')
    		self.Label2.pack(side = LEFT, padx = 5, pady = 5)
     
    		self.Bouton_yes = Button(self.Mafenetre, text ='Oui', command = self.load_question_answer )
    		self.Bouton_yes.pack(side = LEFT, padx = 5, pady = 5)
     
    		self.Bouton_no = Button(self.Mafenetre, text ="Non", command = self.Mafenetre.destroy )
    		self.Bouton_no.pack(side = LEFT, padx = 5, pady = 5)
     
     
     
     
    	def start_ihm(self):
    		self.Mafenetre.mainloop()
     
     
     
     
    	def load_question_answer(self):
    		self.Bouton_yes.pack_forget()
    		self.Bouton_no.pack_forget()
    		self.n=random.randint(0,len (self.liste_questions)-1)
    		self.Mafenetre.title('Question')
    		self.Mafenetre.geometry("400x300+600+400")
    		self.Label1.config(text="%s"%(self.liste_questions[self.n],))
    		self.Label2.config(text="%s"%(self.liste_choix[self.n],))
     
     
     
     
    	def read_answer(self):
    		self.Q=int(input("quel numéros choississez-vous ?"))
    		if self.Q == self.liste_reponse[self.n]:
    			 self.compteur += 1
    		self.liste_questions.pop(self.n)
    		self.liste_choix.pop(self.n)
    		self.liste_reponse.pop(self.n)
     
     
     
    	def continue_or_not(self):
    		if len(self.liste_questions) > 0:
    			return True
    		else:
    			return False
     
     
     
    	def result(self):
    		self.Label1.config(text="Note: %s"%(self.compteur,))
     
    		if self.compteur == 20 :
    			self.Label2.config(text="20/20...Que pouvons nous dire... si ce n'est BRAVO")
    		elif 19>=self.compteur>=16 :
    			self.Label2.config(text="19/20 C'est presque excellent... Courage ! Le succes est au bout du chemin.")
    		elif 15>=self.compteur>=12 :
    			self.Label2.config(text="Tu as entre 12/20 et 15/20. Ne sois pas modeste, tu peux mieux faire !")
    		elif 11>=self.compteur>=10 :
    			self.Label2.config(text="Tu as entre 10/20 et 11/20. Il faut tra-vai-ller !")
    		elif 9>=self.compteur>=6 :
    			self.Label2.config(text="Tu as entre 9 et 6. Tu sais ce qu'il te reste à faire ..." )
    		elif 5>=self.compteur>=0 :
    			self.Label2.config(text="Tu as en dessous de 5/20... Sans commentaire...")
     
     
     
     
    if __name__ == "__main__":
    	main_window = MonIhm()
    	main_window.start_ihm()
     
    	while main_window.continue_or_not():
     
    		main_window.load_question_answer()
    		main_window.read_answer()
     
     
    	main_window.result()
    "La connaissance appartient à tout le monde" (Film Antitrust)

    Tout le nécessaire pour Python:
    *News/Accueil *Cours/tutoriels *FAQ
    *Forums *Outils dédiés *Mon espace personnel avec mes Articles, Cours et Tutoriels

  12. #12
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 21
    Points : 23
    Points
    23
    Par défaut
    j'ai essayé vite fait et ça marche !!

    maintenant je vais juste rentrer le label pour rentrer la réponse mais merci mille fois !

    Juste comme ça self ça veut dire quoi ? ainsi que class au tout début ^^

  13. #13
    Expert éminent

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    Mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 659
    Points : 8 442
    Points
    8 442
    Par défaut
    Oups, si tu debute effectivement c'est un concept un peu avancé. Je te conseille de lire les 4 premier chapitre de mon livre: http://python.developpez.com/tutoriels/python-en-bref. Tu y trouveras toutes les notions de bases.

    Pour résumer, une classe c'est comme un moule. Tu peux donc créer autant de copie conforme que tu le osuhaite à partir de ce moule. C'est ce qu'on appelle un objet. La notion de classe et d'objet apparatient à ce qu'on appelle la programmation orienté objet ou POO. Un principe de base en python est que "en python tout est objet". Notion donc très importante.

    Le "self" indique qu'on utilise une variable de l'objet et non de la classe. Pour rendre cela un peu plus clair, je te donne un exemple. self.compteur te sert à compter des points. C'est spécifique à l'objet main_window qu'on a créé. J'aurai pu utiliser compteur tout court, et compter le nombre d'objet créer.

    Je ne peux résumer facilement toutes ces notions. Je te conseille vivement de lire la doc en ligne ou de charger le pdf (ya un lien dans ma signature de post). TU y trouveras pleins de choses utiles pour te mettre à Python.
    "La connaissance appartient à tout le monde" (Film Antitrust)

    Tout le nécessaire pour Python:
    *News/Accueil *Cours/tutoriels *FAQ
    *Forums *Outils dédiés *Mon espace personnel avec mes Articles, Cours et Tutoriels

  14. #14
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 21
    Points : 23
    Points
    23
    Par défaut
    d'accord bah je vais le consulter mais sinon a la place de faire un label pour écrire notre réponse , je peux faire des radiobutton ?

  15. #15
    Expert éminent

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    Mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 659
    Points : 8 442
    Points
    8 442
    Par défaut
    Pour la reponse c'est une entry qu'il faudrait. Mais sinon, des radio buttons peuvent faire l'affaire. N'oublie pas alors d'ajouter un bouton pour valider.
    "La connaissance appartient à tout le monde" (Film Antitrust)

    Tout le nécessaire pour Python:
    *News/Accueil *Cours/tutoriels *FAQ
    *Forums *Outils dédiés *Mon espace personnel avec mes Articles, Cours et Tutoriels

  16. #16
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 21
    Points : 23
    Points
    23
    Par défaut
    donc voilà j'ai fait un champs de saisie et un bouton valider :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    		self.Q=StringVar
    		self.Champ = Entry(self.Mafenetre, textvariable= self.Q, show='', bg ='bisque', fg='maroon')
    		self.Champ.focus_set()
    		self.Champ.pack(side = LEFT, padx = 5, pady = 5)
     
    		self.Bouton_verif = Button(self.Mafenetre, text ='Valider', command = self.read_answer)
    		self.Bouton_verif.pack(side = LEFT, padx = 5, pady = 5)

    seul soucis lorsque je fais valider cela ne marche pas ... je pense que c'est la commande qui ne convient pas.

  17. #17
    Expert éminent

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    Mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 659
    Points : 8 442
    Points
    8 442
    Par défaut
    Quand tu dis que cela ne fonctionne pas, pourrais tu etre plus precis? Que se passe t il, ou que ne se passe t il pas?
    "La connaissance appartient à tout le monde" (Film Antitrust)

    Tout le nécessaire pour Python:
    *News/Accueil *Cours/tutoriels *FAQ
    *Forums *Outils dédiés *Mon espace personnel avec mes Articles, Cours et Tutoriels

  18. #18
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 21
    Points : 23
    Points
    23
    Par défaut
    Lorsque je met valider , j'appuie dans la vide, en fait la fenêtre reste telle qu'elle..

  19. #19
    Expert éminent

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    Mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 659
    Points : 8 442
    Points
    8 442
    Par défaut
    Alors avant tout, ne poste jamais une portion de code comme tu l'as fait, car on ne sait pas ou cela va, ni si tu n'a pas modifié le reste du code entre temps. Donc toujours du code en entier.

    Sinon, l'erreur venait de ma part, cela ne pouvait pas fonctionner tel que je te l'avais indiqué. Donc voici du code fonctionnel. L'erreur venait du fait qu'il faut actionner les changements d'ihm au sein meme de la classe. Je te laisse analyser la correction:

    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
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
     
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
     
    #Ligne 1 necessaire sous Linux
     
    from Tkinter import *
    from math import *
    import random
    import time
     
     
     
     
    class MonIhm():
    # Création de la fenêtre principale (main window)
     
    	def __init__(self):
    		self.compteur=0
    		self.nombre_de_question=0
    		self.start = True
     
    		self.liste_questions=["Question  : Quelle est la capitale du Liban ?\n ",\
    							"Question  : Quand l'armistice de la seconde Guerre Mondiale a-t-elle été signée ? ",\
    							"Question  : Quelle est la capitale de l'Estonie /n? ",\
    							"Question  : Quelle est la langue maternelle la plus parlée au monde ? \n",\
    							"Question  : Quelle est la langue officielle au Nigeria \n?",\
    							"Question  : Qui a réalisé le père noel est une ordure ? \n",\
    							"Question  : Quel est l'état le plus grand des Etats-Unis ?",\
    							"Question  : Qui a écrit l'Assommoir ? \n",\
    							"Question  : La pénicilline a été découverte par : \n",\
    							"Question  : Le premier président de la République était : \n",\
    							"Question  : En quelle année ont été créées les régions ? \n",\
    							"Question : Que collectionne un conchyophile ? \n",\
    							"Question  : Quelle est la ville la plus peuplée du monde ? \n",\
    							"Question  : Quelle formule mathématique permet d'établir les développements limités ? \n",\
    							"Question  : Quel évènement a marqué l'année 1935 ? \n",\
    							"Question : Quelle est la hauteur de la Tour Eiffel ? \n",\
    							"Question  : Quel est l'organe le plus volumineux et le plus massif parmi ceux-ci ? \n",\
    							"Question : En quelle année Neil Amstrong a-t-il posé le premier pas sur la lune ? \n",\
    							"Question : Quel chanteur fait partie des Rolling Stones ? \n",\
    							"Question : Quelle équipe de football a remporté la première coupe du monde en 1930 ? \n"]
     
    		self.liste_choix=["1) Beyrouth,2) Damas,3) Rabat ",\
    						"1) 8 mai 1945,2) 11 novemble 1945,3) 18 juin 1940 ",\
    						"1) Riga,2) Tallin,3) Vilnius",\
    						"1) L'Anglais,2) L'espagnol,  3) le chinois madarin ",\
    						"1) L'anglais,2) Le nigerian,3) L'afrikaans ",\
    						"1) Coline Serreau,2) Gerard Oury,3) Jean Marie Poiré ",\
    						"1) Le Texas,2) L'Alaska,3) Le Montana ",\
    						"1) Stendhal,2) Flaubert,3) Zola ",\
    						"1) Ian Fleming,2) Alexander Flening,3) Marie Curie ",\
    						"1) R.Coty,2) A.Pinay,3) V.Auriol ",\
    						"1) 1806,2) 1956,3) 1901 ",\
    						"1) Des bières,2) des coquillages,3) Des animaux empaillés ",\
    						"1) Tokyo,2) Mexico,3) New York ",\
    						"1) Schrodinger,2) Crutz,3) Taylor ",\
    						"1) Les lois sociales du Front populaire,2) Lois de Nüremberg,3) Hitler chancelier ",\
    						"1) 250 mètres,2) 324 mètres,3) 295 mètres ",\
    						"1) Le foie,2) L'estomac,3) Le colon ",\
    						"1) 1967,2) 1969,3) 1971 ",\
    						"1) Jonh Lennon,2) Mick Jagger,3) Brian Johnson ",\
    						"1) Italie,2) Brésil,3) Uruguay "]
     
    		self.liste_reponse=[1,1,2,3,1,3,2,3,2,3,2,2,1,3,2,2,1,2,2,3]
     
    		self.construct_ihm()
     
     
     
     
    	def construct_ihm(self):		
    		self.Mafenetre = Tk()
     
    		self.Mafenetre.title('QCM')
    		self.Mafenetre.geometry('400x300+600+400')
     
    		self.Label1 = Label(self.Mafenetre, text = 'Voici un petit QCM présenté par Jonathan, Thibault , Landry ')
    		self.Label1.pack(side = TOP, padx = 5, pady = 5)
     
     
    		self.Label2 = Label(self.Mafenetre, text = 'Voulez- vous commencez ? ')
    		self.Label2.pack(side = LEFT, padx = 5, pady = 5)
     
    		self.Bouton_yes = Button(self.Mafenetre, text ='Oui', command = self.load_question_answer )
    		self.Bouton_yes.pack(side = LEFT, padx = 5, pady = 5)
     
    		self.Bouton_no = Button(self.Mafenetre, text ="Non", command = self.Mafenetre.destroy )
    		self.Bouton_no.pack(side = LEFT, padx = 5, pady = 5)
     
     
     
     
     
    	def start_ihm(self):
    		self.Mafenetre.mainloop()
     
     
     
     
    	def load_question_answer(self):
    		if self.start == True:
    			self.Bouton_yes.pack_forget()
    			self.Bouton_no.pack_forget()
     
    			self.Q=StringVar
    			self.Champ = Entry(self.Mafenetre, textvariable= self.Q, show='', bg ='bisque', fg='maroon')
    			self.Champ.focus_set()
    			self.Champ.pack(side = LEFT, padx = 5, pady = 5)
     
    			self.Bouton_verif = Button(self.Mafenetre, text ='Valider', command = self.read_answer)
    			self.Bouton_verif.pack(side = LEFT, padx = 5, pady = 5)
     
    			self.Mafenetre.title('Question')
     
    			self.start = False
     
    		self.n=random.randint(0,len (self.liste_questions)-1)
    		self.Label1.config(text="%s"%(self.liste_questions[self.n],))
    		self.Label2.config(text="%s"%(self.liste_choix[self.n],))
     
     
     
     
    	def read_answer(self):
    		self.Q=self.Champ.get()
    		if self.Q == self.liste_reponse[self.n]:
    			 self.compteur += 1
    		self.liste_questions.pop(self.n)
    		self.liste_choix.pop(self.n)
    		self.liste_reponse.pop(self.n)
     
    		self.load_question_answer()
     
     
     
     
    	def result(self):
    		self.Label1.config(text="Note: %s"%(self.compteur,))
     
    		if self.compteur == 20 :
    			self.Label2.config(text="20/20...Que pouvons nous dire... si ce n'est BRAVO")
    		elif 19>=self.compteur>=16 :
    			self.Label2.config(text="19/20 C'est presque excellent... Courage ! Le succes est au bout du chemin.")
    		elif 15>=self.compteur>=12 :
    			self.Label2.config(text="Tu as entre 12/20 et 15/20. Ne sois pas modeste, tu peux mieux faire !")
    		elif 11>=self.compteur>=10 :
    			self.Label2.config(text="Tu as entre 10/20 et 11/20. Il faut tra-vai-ller !")
    		elif 9>=self.compteur>=6 :
    			self.Label2.config(text="Tu as entre 9 et 6. Tu sais ce qu'il te reste à faire ..." )
    		elif 5>=self.compteur>=0 :
    			self.Label2.config(text="Tu as en dessous de 5/20... Sans commentaire...")
     
     
     
     
    if __name__ == "__main__":
    	main_window = MonIhm()
    	main_window.start_ihm()
     
    	main_window.load_question_answer()
     
     
    	main_window.result()
    "La connaissance appartient à tout le monde" (Film Antitrust)

    Tout le nécessaire pour Python:
    *News/Accueil *Cours/tutoriels *FAQ
    *Forums *Outils dédiés *Mon espace personnel avec mes Articles, Cours et Tutoriels

  20. #20
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 21
    Points : 23
    Points
    23
    Par défaut
    en faites vous avez dit dans le code que : si il reste des chose dans la liste alors c'est vrai sinon c'est faux et on passe à la suite du programme c'est ça ?

    Encore merci !

    Par contre à la fin des 20 questions le programmes ne veut pas passer au systeme de note..

    j'ai trouvé le problème c'est qu'en faites on affiche pas "self.result()" à la fin des 20 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
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    from tkinter import *
    from math import *
    import random
    import time
     
     
     
     
    class MonIhm():
    # Création de la fenêtre principale (main window)
     
    	def __init__(self):
    		self.compteur=0
    		self.nombre_de_question=0
    		self.start = True
     
    		self.liste_questions=["Question  : Quelle est la capitale du Liban ?\n ",\
    							"Question  : Quand l'armistice de la seconde Guerre Mondiale a-t-elle été signée ? ",\
    							"Question  : Quelle est la capitale de l'Estonie /n? ",\
    							"Question  : Quelle est la langue maternelle la plus parlée au monde ? \n",\
    							"Question  : Quelle est la langue officielle au Nigeria \n?",\
    							"Question  : Qui a réalisé le père noel est une ordure ? \n",\
    							"Question  : Quel est l'état le plus grand des Etats-Unis ?",\
    							"Question  : Qui a écrit l'Assommoir ? \n",\
    							"Question  : La pénicilline a été découverte par : \n",\
    							"Question  : Le premier président de la République était : \n",\
    							"Question  : En quelle année ont été créées les régions ? \n",\
    							"Question : Que collectionne un conchyophile ? \n",\
    							"Question  : Quelle est la ville la plus peuplée du monde ? \n",\
    							"Question  : Quelle formule mathématique permet d'établir les développements limités ? \n",\
    							"Question  : Quel évènement a marqué l'année 1935 ? \n",\
    							"Question : Quelle est la hauteur de la Tour Eiffel ? \n",\
    							"Question  : Quel est l'organe le plus volumineux et le plus massif parmi ceux-ci ? \n",\
    							"Question : En quelle année Neil Amstrong a-t-il posé le premier pas sur la lune ? \n",\
    							"Question : Quel chanteur fait partie des Rolling Stones ? \n",\
    							"Question : Quelle équipe de football a remporté la première coupe du monde en 1930 ? \n"]
     
    		self.liste_choix=["1) Beyrouth,2) Damas,3) Rabat ",\
    						"1) 8 mai 1945,2) 11 novemble 1945,3) 18 juin 1940 ",\
    						"1) Riga,2) Tallin,3) Vilnius",\
    						"1) L'Anglais,2) L'espagnol,  3) le chinois madarin ",\
    						"1) L'anglais,2) Le nigerian,3) L'afrikaans ",\
    						"1) Coline Serreau,2) Gerard Oury,3) Jean Marie Poiré ",\
    						"1) Le Texas,2) L'Alaska,3) Le Montana ",\
    						"1) Stendhal,2) Flaubert,3) Zola ",\
    						"1) Ian Fleming,2) Alexander Flening,3) Marie Curie ",\
    						"1) R.Coty,2) A.Pinay,3) V.Auriol ",\
    						"1) 1806,2) 1956,3) 1901 ",\
    						"1) Des bières,2) des coquillages,3) Des animaux empaillés ",\
    						"1) Tokyo,2) Mexico,3) New York ",\
    						"1) Schrodinger,2) Crutz,3) Taylor ",\
    						"1) Les lois sociales du Front populaire,2) Lois de Nüremberg,3) Hitler chancelier ",\
    						"1) 250 mètres,2) 324 mètres,3) 295 mètres ",\
    						"1) Le foie,2) L'estomac,3) Le colon ",\
    						"1) 1967,2) 1969,3) 1971 ",\
    						"1) Jonh Lennon,2) Mick Jagger,3) Brian Johnson ",\
    						"1) Italie,2) Brésil,3) Uruguay "]
     
    		self.liste_reponse=[1,1,2,3,1,3,2,3,2,3,2,2,1,3,2,2,1,2,2,3]
     
    		self.construct_ihm()
     
     
     
     
    	def construct_ihm(self):		
    		self.Mafenetre = Tk()
     
    		self.Mafenetre.title('QCM')
    		self.Mafenetre.geometry('400x300+600+400')
     
    		self.Label1 = Label(self.Mafenetre, text = 'Voici un petit QCM présenté par Jonathan, Thibault , Landry ')
    		self.Label1.pack(side = TOP, padx = 5, pady = 5)
     
     
    		self.Label2 = Label(self.Mafenetre, text = 'Voulez- vous commencez ? ')
    		self.Label2.pack(side = LEFT, padx = 5, pady = 5)
     
    		self.Bouton_yes = Button(self.Mafenetre, text ='Oui', command = self.load_question_answer )
    		self.Bouton_yes.pack(side = LEFT, padx = 5, pady = 5)
     
    		self.Bouton_no = Button(self.Mafenetre, text ="Non", command = self.Mafenetre.destroy )
    		self.Bouton_no.pack(side = LEFT, padx = 5, pady = 5)
     
     
     
     
     
    	def start_ihm(self):
    		self.Mafenetre.mainloop()
     
     
     
     
    	def load_question_answer(self):
    		if self.start == True:
    			self.Bouton_yes.pack_forget()
    			self.Bouton_no.pack_forget()
     
    			self.Q=StringVar
    			self.Champ = Entry(self.Mafenetre, textvariable= self.Q, show='', bg ='bisque', fg='maroon')
    			self.Champ.focus_set()
    			self.Champ.pack(side = LEFT, padx = 5, pady = 5)
     
    			self.Bouton_verif = Button(self.Mafenetre, text ='Valider', command = self.read_answer)
    			self.Bouton_verif.pack(side = LEFT, padx = 5, pady = 5)
     
    			self.Mafenetre.title('Question')
     
    			self.start = False
     
    		self.n=random.randint(0,len (self.liste_questions)-1)
    		self.Label1.config(text="%s"%(self.liste_questions[self.n],))
    		self.Label2.config(text="%s"%(self.liste_choix[self.n],))
     
     
     
     
    	def read_answer(self):
    		self.Q=self.Champ.get()
    		if self.Q == self.liste_reponse[self.n]:
    			 self.compteur += 1
    		self.liste_questions.pop(self.n)
    		self.liste_choix.pop(self.n)
    		self.liste_reponse.pop(self.n)
     
    		while self.liste-question > 0 :
    			self.load_question_answer()
    		else :
    			self.result()
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    	def result(self):
    		self.Label1.config(text="Note: %s"%(self.compteur,))
     
    		if self.compteur == 20 :
    			self.Label2.config(text="20/20...Que pouvons nous dire... si ce n'est BRAVO")
    		elif 19>=self.compteur>=16 :
    			self.Label2.config(text="19/20 C'est presque excellent... Courage ! Le succes est au bout du chemin.")
    		elif 15>=self.compteur>=12 :
    			self.Label2.config(text="Tu as entre 12/20 et 15/20. Ne sois pas modeste, tu peux mieux faire !")
    		elif 11>=self.compteur>=10 :
    			self.Label2.config(text="Tu as entre 10/20 et 11/20. Il faut tra-vai-ller !")
    		elif 9>=self.compteur>=6 :
    			self.Label2.config(text="Tu as entre 9 et 6. Tu sais ce qu'il te reste à faire ..." )
    		elif 5>=self.compteur>=0 :
    			self.Label2.config(text="Tu as en dessous de 5/20... Sans commentaire...")
     
     
     
     
    if __name__ == "__main__":
    	main_window = MonIhm()
    	main_window.start_ihm()
     
    	main_window.load_question_answer()
     
     
    	main_window.result()
    j'ai essayé ceci mais ça ne marche pas :/

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. acoustique, musique sur Python
    Par Papou_28 dans le forum Programmation multimédia/Jeux
    Réponses: 7
    Dernier message: 25/04/2007, 08h12
  2. Application reseau de neurone sur python!
    Par tnouss dans le forum Calcul scientifique
    Réponses: 3
    Dernier message: 15/04/2007, 20h18
  3. Boucles sur python
    Par Spitfire378 dans le forum Général Python
    Réponses: 10
    Dernier message: 08/04/2007, 20h46
  4. Comment obtenir une adresse mac sur python
    Par Wael Maaoui dans le forum Réseau/Web
    Réponses: 4
    Dernier message: 19/02/2007, 13h52

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