Evaluer la réponse

Jusqu'ici, dans les exemples d'exercices, l'évaluation de la réponse a été complètement prise en charge par les modèles. Il est en fait possible de programmer soi-même l'évaluation de la réponse grâce à un script Python.

Ce script, à placer dans la clé evaluator, est exécuté après chaque validation de l'exercice par l'élève. Le script a accès à la réponse de l'élève dans la variable input.value et, comme le script before, il a accès à toutes les clés de l'exercice. Il doit produire une clé score (un score pour la tentative) et éventuellement une clé feedback (un message d'erreur).

Exemple

extends = /model/basic/numinput.pl

before ==
k = randint(3, 6)
a = randint(25, 75)
b = a + randint(6, 10)
==

question ==
Donner un entier multiple de {{ k }}, compris entre {{ a }} et {{ b }}.
==

evaluator ==
if input.value % k != 0:
    score = 0
    feedback = f"Ce nombre n'est pas un multiple de {k}."
elif input.value < a or ans > b:
    score = 0
    feedback = f"Ce nombre n'est pas compris entre {a} et {b}."
else:
    score = 100
==