NSI · premiere spe
Chapitre 6 — Langages et programmation
L'essentiel en 30 secondes
En Python, une fonction se définit avec def, prend des paramètres et renvoie un résultat avec return. Toute fonction doit avoir une spécification (docstring) : ce qu'elle fait, ses paramètres, ce qu'elle renvoie. On teste avec des assertions (assert). Savoir mettre au point un programme = savoir déboguer : lire les messages d'erreur, utiliser print() ou un débogueur.
Notions clés
- Fonction
- Bloc de code nommé, réutilisable, qui prend des paramètres et renvoie un résultat. Définie avec def.
- Spécification (docstring)
- Documentation d'une fonction : description, paramètres (types), valeur de retour, préconditions.
- Assertion (assert)
- Vérification qui lève une AssertionError si la condition est fausse. Sert à tester une fonction.
- Portée des variables
- Variable locale = définie dans une fonction (inaccessible dehors). Variable globale = définie hors fonction.
- Mise au point (débogage)
- Processus de recherche et correction des erreurs (bugs). Outils : print(), assert, débogueur, traces.
- Jeu de tests
- Ensemble de cas (normaux, limites, erreurs) pour vérifier qu'une fonction est correcte.
Formules
Définition d'une fonction avec docstring
Condition : Toujours documenter avec une docstring entre triple guillemets
Assertion de test
Condition : Si la condition est fausse AssertionError. placer après la définition de la fonction.
Gestion d'une précondition
Condition : Vérifie que les paramètres respectent les préconditions avant de calculer
Types d'erreurs courants
Condition : Lire le message d'erreur Python : il indique le type, la ligne et la cause
A retenir
- Une fonction DOIT avoir un return explicite. Sans return, elle renvoie None par défaut.
- Toujours tester une fonction avec plusieurs cas : cas normal, cas limite (liste vide, 0, valeur négative…), cas d'erreur.
- La portée est cruciale : une variable définie dans une fonction n'existe PAS en dehors de cette fonction.
Erreurs classiques
Erreur : Confondre print() et return : print affiche mais ne renvoie rien d'utilisable
Correction : Utilise return pour que la fonction renvoie une valeur exploitable dans le programme.
Erreur : Ne pas tester les cas limites : liste vide, n = 0, chaîne vide
Correction : Un jeu de tests complet inclut TOUJOURS les cas limites et les cas d'erreur.
Erreur : Modifier une variable globale dans une fonction sans le savoir (effet de bord)
Correction : Évite les variables globales. Passe tout en paramètre et renvoie le résultat avec return.
Astuce méthode
Au DS, écris TOUJOURS la docstring AVANT de coder le corps de la fonction. Ça te force à comprendre ce que tu dois faire avant de le faire.