NSIChapitre 6

Langages et programmation

L'essentiel en 30 secondes

Une fonction Python (def) prend des paramètres, exécute du code et renvoie un résultat (return). Toute fonction doit avoir une docstring (rôle, params, retour, préconditions) et un jeu de tests (assert) couvrant cas normaux et limites. La portée des variables suit la règle LEGB (Local, Enclosing, Global, Built-in). Pour déboguer : lire le traceback, utiliser print/assert, tester les cas limites. Éviter les effets de bord et les variables globales. Les exceptions (try/except) gèrent les erreurs proprement.

Les notions à connaître

Fonction
Bloc de code nommé et réutilisable. Définie avec def nom(params): ... return résultat. Prend des paramètres (entrées) et renvoie un résultat (sortie). Permet la décomposition et la réutilisation.
Spécification (docstring)
Documentation d'une fonction entre triple guillemets. Décrit : le rôle, les paramètres (noms et types), la valeur de retour (type), les préconditions. Accessible via help(f)help(f) ou f.__doc__.
Précondition / Postcondition
Précondition : ce qui doit être vrai AVANT l'appel (ex : n >= 0). Postcondition : ce qui est garanti APRÈS l'appel (ex : le résultat est trié). Les assertions vérifient ces conditions.
Assertion (assert)
assert condition, 'message'. Si condition est False \to AssertionError. Sert à vérifier préconditions et à tester. Désactivable en production (python -O).
Portée des variables (scope)
Variable locale = définie dans une fonction, inaccessible dehors. Variable globale = définie au niveau du module. Règle LEGB : Local \to Enclosing \to Global \to Built-in. Éviter global var.
Mise au point (débogage)
Recherche et correction des erreurs. Techniques : lire le traceback, print() stratégiques, assert, pas-à-pas avec un débogueur, tests unitaires.
Jeu de tests
Ensemble de cas de test pour vérifier une fonction : cas normaux, cas limites (0, vide, un seul élément), cas d'erreur. Plus le jeu est complet, plus la confiance est grande.
Effet de bord
Modification d'une variable extérieure ou d'un état global par une fonction. À éviter : une fonction devrait idéalement ne dépendre que de ses paramètres et ne communiquer que par return.

Les erreurs à éviter en nsi

Sais-tu répondre à ces questions ?

Les corrigés détaillés sont dans le quiz du chapitre.

  1. Qu'affiche le code suivant ? def saluer(nom): return "Bonjour " + nom print(saluer("Alice"))
  2. Quelle est la différence entre print() et return dans une fonction Python ?
  3. Qu'est-ce qu'une spécification de fonction (docstring) ?
  4. Qu'affiche le code suivant ? x = 10 def f(): x = 5 return x f() print(x)
  5. Qu'affiche le code suivant ? def mystere(n): if n <= 0: return 0 return n + mystere(n - 1) print(mystere(4))

Accède à la fiche complète

Crée ton compte gratuit pour lire la fiche en entier et accéder à 7 000+ contenus de révision.

Les autres chapitres de nsi en 1ère spécialité