Loading [MathJax]/jax/output/HTML-CSS/fonts/STIX-Web/fontdata.js

fonctions jeu de tests - cours - préconditions

Lorsqu'on utilise des algorithmes avec des informations en entrée, parfois certaines valeurs de ces informations ne sont «pas possibles» parce que dans ce cas l'algorithme n'a pas de sens.
Dans ce cas on dit que les informations en entrée doivent vérifier des préconditions (littéralement «conditions avant l'algorithme»).

En Python on peut indiquer cela dans le corps de la fonction en utilisant le même mot clef que pour les jeux de tests : le mot-clef assert. Cela offre deux avantages :

  • si lors de l'appel de la fonction vous utilisez une valeur «pas possible», cela peut vous indiquer un message d'erreur spécial,
  • lorsque vous lisez le code quelque temps plus tard, vous vous rappelez imédiatement des conditions de validité de l'algorithme.

exemple : aire du rectangle

Reprenons la fonction aire_rectangle qui calcule l'aire d'un rectangle :

def aire_rectangle(l, h):
    aire = l * h
    return aire

Le calcul de l'aire n'a de sens que si la largeur et la hauteur sont positives. On peut donc dire que nous avons deux préconditions qui doivent être vérifiées : d'une part l >= 0 et d'autre part h >= 0.
Dans le code cela donne la fonction suivante :

Entrée[ ]:

Notre fonction peut être appelée comme avant :

Entrée[ ]:

En revanche si on exécute un appel avec une valeur de l ou une valeur de h négative, nous allons obtenir un message d'erreur adapté :

Entrée[ ]:
Entrée[ ]:
Chargement de Basthon...