Lycée   >   Premiere   >   NSI   >   Donner des préconditions

Donner des préconditions

  • Fiche de cours
  • Quiz
  • Profs en ligne
Objectifs
  • Commenter ou documenter une fonction ou un programme.
  • Donner des préconditions.
Points clés
  • Pour éviter des erreurs, on documente les fonctions en donnant des préconditions.
  • Une précondition est une description des conditions d’utilisation de la fonction.
  • Prévoir les erreurs de l’utilisateur et leur associer une réponse, c’est effectuer une programmation dite défensive.
Pour bien comprendre
  • Fonctions
  • Opérateurs mathématiques en Python

Pour éviter des erreurs, on commente les fonctions en fournissant une documentation : les préconditions font partie de cette documentation.

1. Documenter et ajouter une précondition
a. La documentation d’une fonction

Python permet d’obtenir la documentation de n’importe quelle fonction par la commande help(nom_de_la_fonction).

On peut donc documenter ses fonctions pour indiquer ce qu’elle est censée effectuer, quels doivent être ses paramètres, etc.

Exemple
La fonction range permet de créer une liste de nombres entiers de valeurs croissantes.
help(range) donne la documentation suivante pour la fonction range : on sait ainsi que range retourne une séquence d’entiers, depuis un départ que l’on prend jusqu’à un dernier que l’on ne prend pas.
La documentation d’une fonction peut être assez longue, voici ci-dessous la fin de la documentation de la fonction range.

Pour commenter une fonction que l’on vient de créer, on peut écrire une chaine de caractères entre triple double quote ( " ), en la plaçant au début du corps de la fonction. Cela permet d’indiquer à Python ce qu’il va devoir afficher comme documentation.

Pour accéder à la documentation dans la console (shell en anglais), c’est-à-dire là où il y a >>>, il faut taper « help » suivi du nom de la fonction entre parenthèses.
Python répondra alors en donnant le nom de la fonction avec ses paramètres formels (variables) s’il y en a, puis à la ligne le commentaire avec une indentation.
Exemple
Voici l’explication ligne par ligne.
def euclid(a,b): Le mot clé def définit une fonction nommée euclid, qui prend pour paramètres a et b.
   """calcul du pgcd par l’algorithme d’Euclide""" Commentaire de la fonction.
   assert a==0 Corps de la fonction euclid.
   while b!=0:
      if a>b:
        a=a-b
      else:
         b=b-a
   return a
help(euclid) Dans le shell, on demande l’affichage du commentaire en tapant help suivi du nom de la fonction entre parenthèses..
Help on funtion euclid in module_main_: Affichage du commentaire dans le shell.
euclid(a,b)
   calcul du pgcd par l’algorithme d’Euclide
b. Les préconditions d’une fonction

On utilise cette documentation pour indiquer ce qu’on appelle des préconditions.

Une précondition est une description des conditions d’utilisation de la fonction. Elle indique donc les conditions que doivent respecter les paramètres de la fonction.

Cela nécessite d’avoir réfléchi à tous les cas possibles.

Exemple de l’algorithme d’Euclide
La documentation associée à la fonction euclid nous donner les préconditions suivantes : a et b doivent être des entiers naturels, et on doit aussi avoir a > 0.
2. La programmation dite défensive

L’utilisateur d’un programme ou d’une fonction peut ne pas lire la documentation de la fonction et donc générer des erreurs. Pour éviter cela, on peut utiliser une programmation dite défensive, c’est-à-dire que l’on prévoit les erreurs que l’utilisateur peut commettre et on les intercepte.

Pour utiliser une programmation défensive, on utilise la commande assert de Python. La commande assert condition indique ainsi que Python ne continuera le programme que si la condition est réalisée, sinon une erreur est mentionnée.

Exemple
Ces lignes de code vont générer un message d’erreur lorsque a vaut 0. On a ainsi l’affichage suivant.
Le message d’erreur se lit toujours du bas vers le haut : on indique une erreur d’assertion, et au-dessus en rouge on nous indique que le problème est que a n’est pas strictement supérieur à 0.

On peut aussi ajouter un message indiquant la raison pour laquelle il y a une erreur. Il suffit de rajouter assert condition, "message" après.

On appelle cela intercepter l’erreur ou lever l’exception.
Exemple
Ces lignes de codes vont générer le message suivant lorsque a vaut 0.

Comment as-tu trouvé ce cours ?

Évalue ce cours !

 

Question 1/5

La médiane de 6 notes est 13. Cela signifie que :

Question 2/5

On a obtenu la série statistique suivante :

Combien vaut la médiane ?

Question 3/5

On a obtenu la série ci-dessous :

Quelle est la médiane de cette série ?

Question 4/5

On a relevé les tailles en cm des élèves d’une classe :

 

Parmi les propositions suivantes, laquelle est vraie ?

Question 5/5

Les notes en français de deux classes littéraires sont données dans le tableau suivant :

Quelle est la note médiane ?

Vous avez obtenu75%de bonnes réponses !

Recevez l'intégralité des bonnes réponses ainsi que les rappels de cours associés :

Votre adresse e-mail sera exclusivement utilisée pour vous envoyer notre newsletter. Vous pourrez vous désinscrire à tout moment, à travers le lien de désinscription présent dans chaque newsletter. Pour en savoir plus sur la gestion de vos données personnelles et pour exercer vos droits, vous pouvez consulter notre charte.

Une erreur s'est produite, veuillez ré-essayer

Consultez votre boite email, vous y trouverez vos résultats de quiz!

Découvrez le soutien scolaire en ligne avec myMaxicours

Le service propose une plateforme de contenus interactifs, ludiques et variés pour les élèves du CP à la Terminale. Nous proposons des univers adaptés aux tranches d'âge afin de favoriser la concentration, encourager et motiver quel que soit le niveau. Nous souhaitons que chacun se sente bien pour apprendre et progresser en toute sérénité ! 

Fiches de cours les plus recherchées

NSI

Donner des postconditions

NSI

Tester un programme

NSI

Prototyper une fonction

NSI

S'informer sur une bibliothèque Python

NSI

Utiliser la bibliothèque Matplotlib de Python pour créer un graphique

NSI

Algorithmes de recherche : parcourir un tableau

NSI

Algorithmes de recherche : rechercher un extremum

NSI

Algorithmes de recherche : obtenir une moyenne, une médiane

NSI

Trier par insertion

NSI

Trier par sélection