Bonjour,
Afin de me familiariser avec Python, j'ai essayé de développer un programme de révision des tables de multiplications. Le principe est simple, dix questions sont posées avec correction immédiate et à la fin, le résultat final est affiché avec un mot d'encouragement. J'ai essayé d'ajouter un bloc Try...except au cas où l'utilisateur tape autre chose qu'un nombre. Le programme a l'air de fonctionner sauf sur un point :
Lorsque je saisi autre chose qu'un entier, il me repose la même question. Jusque-là logique. Ensuite, que je donne une bonne ou une mauvaise réponse, peu importe, le programme réagit correctement. Le problème est qu'à la question suivante, plutôt que de générer aléatoirement une nouvelle question, la même est à nouveau posée et je ne sais pas d'où sa peut venir.
Je ne sais pas si j'ai été assez clair, le code parlera peut-être mieux pour moi. Si vous avez d'autres remarques ou conseils, n'hésitez surtout pas à m'en faire part. Merci !
Voici le code :
Et son résultat :
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 # -*- coding:Latin-1 -*- import random note = 0 questionsPosees = 0 while questionsPosees < 10: a = random.randint(1, 10) b = random.randint(1, 10) def question(): global note, questionsPosees try: reponse = int(raw_input("Combien font %d x %d ? " % (a, b))) if reponse == a * b: print "Exact ! %d x %d = %d" % (a, b, a * b) note += 1 questionsPosees += 1 else: print "Faux ! %d x %d = %d et pas %d." % (a, b, a * b, reponse) questionsPosees += 1 return 1 except ValueError: print "Réponse non valide. Tu dois saisir un nombre." return 0 while question() != 1: question() #Affichage du résultat final if note <= 4: print "Ta note est de %d/10. Tu ferais bien de réviser." % (note) elif note > 4 and note <= 6: print "Ta note est de %d/10. Courage ! Tu tiens le bon bout." % (note) elif note > 6 and note <= 9: print "Ta note est de %d/10. Tu y es presque ! Encore un petit effort." % (note) elif note == 10: print "Parfait ! Ta note est de 10/10. N'oublie cependant pas de réviser régulièrement. Ce serait dommage d'oublier ce que tu as appris après tous ces efforts."
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 $ python tables.py Combien font 4 x 3 ? 12 Exact ! 4 x 3 = 12 Combien font 3 x 10 ? 3 Faux ! 3 x 10 = 30 et pas 3. Combien font 3 x 6 ? cas1 Réponse non valide. Tu dois saisir un nombre. Combien font 3 x 6 ? 18 Exact ! 3 x 6 = 18 Combien font 3 x 6 ? 18 Exact ! 3 x 6 = 18 Combien font 9 x 6 ? cas2 Réponse non valide. Tu dois saisir un nombre. Combien font 9 x 6 ? 6 Faux ! 9 x 6 = 54 et pas 6. Combien font 9 x 6 ? 54 Exact ! 9 x 6 = 54
Partager