Lycée Jean Vilar - Villeneuve lez Avignon
Page d'accueil Le site académique
Le site du lycée Espace Numérique de Travail
Le lycée
  Le lycée Jean Vilar
  Archives
  Art et culture
  Association Sportive
  Blogs
  CDI
  Développement durable
  Enseignements
  Espace enseignants
  Espace lycéens
  Espace parents
  Grand oral
  Journal du lycée
  Marchés publics
  Orientation
  Projet d'établissement
  Spécialités
  TICE
  Un lycée européen
  Voyages
  Webradio













Nouvelle page 1
Jean Vilar
Test des tables de multiplication chronométré
Python  

Modules à importer :
          random  pour piocher dans une liste de nombres aléatoires
          time  pour mesurer le temps

Avec ce programme :
- on récupère des variables saisies par l'utilisateur avec l'instruction  input() 
- on affiche avec  print() 
- on utilise des nombres entiers aléatoires  random.randint 
- on crée une boucle avec  for ...
- on teste une condition avec  if ... elif  qui signifie else if
- on teste une condition avec  if ... else 

On utilise deux types de variables :
          int()  pour un entier
          str()  pour string : une chaîne de caractères (texte)

Le code

import random
import time
# on fixe la valeur initiale du score
score = 0
# on note le temps de départ dans la variable tdep
tdep = time.time()
# on crée une boucle pour poser 10 questions
# i est une entier de l'intervalle [0,10[
for i in range(0, 10):
    a = random.randint(2, 10)
    b = random.randint(2, 10)
    rep = a * b
    quest = str(a) + " × " + str(b) + " = "
    repu = input(quest)
    if int(repu) == rep:
        print("ok")
        # le score est incrémenté si la réponse est exacte
       
score += 1
    else:
        print("Pas du tout :", quest, rep)
print("Terminé.")
print("Votre score : ", score, "/ 10")
# on note le temps de fin dans la variable tfin
tfin = time.time()
# on ajoute un petit commentaire ;)
if score < 5:
    print("Retournez à l'école primaire !")
elif score < 7:
    print("Bof, je crois qu'il faut réviser les tables !")
elif score < 10:
    print("C'est pas mal. Encore un peu d'entraînement.")
elif score == 10:
    print("Super ! Bravo !")
# on affiche la durée en min et sec
ttest = tfin - tdep
nbmin = ttest // 60
nbsec = int(ttest - nbmin * 60)
print("Durée pour répondre aux 10 questions : ", int(nbmin), "min", nbsec, "s")

Le résultat (exemple)

6 × 9 = 54
ok
7 × 9 = 63
ok
8 × 10 = 80
ok
7 × 7 = 49
ok
8 × 10 = 80
ok
9 × 8 = 72
ok
6 × 9 = 54
ok
7 × 10 = 70
ok
2 × 9 = 18
ok
9 × 8 = 72
ok
Terminé.
Votre score : 10 / 10
Super ! Bravo !
Durée pour répondre aux 10 questions : 0 min 18 s
>>>