
ULUMINE · Numérique et sciences informatiques (NSI) · Première
Fonctions en Python : spécification et tests
Une fonction se définit avec def, renvoie son résultat avec return, se spécifie dans sa docstring et se teste avec assert.
Fonctions
- def nom(paramètres): … return valeur ; sans return → None.
- Paramètre par défaut : def puissance(x, n=2).
- Variables affectées dans la fonction = locales.
Spécification
- Prototype + préconditions (sur les arguments) + postconditions (sur le résultat).
- Docstring entre triples guillemets, affichée par help().
- assert condition, "message" : erreur AssertionError si la condition est fausse.
Tests et bibliothèques
- Tester des cas généraux et des cas limites (vide, un élément, 0, négatifs, bornes).
- Les tests révèlent des erreurs mais ne prouvent pas la correction.
- import math puis math.sqrt(x) ; from random import randint puis randint(1, 6).
Pièges à éviter
- Utiliser print au lieu de return dans une fonction de calcul.
- Initialiser un maximum à 0 au lieu du premier élément.
- Oublier les cas limites dans les tests.
- Croire qu’une variable locale est visible hors de la fonction.