Programme

NSI (Spé) — Langages et programmation

Récursivité et modularité

Fonctions récursives, modules, tests et documentation

Résumé synthétiqueFiche en 4 sectionsQuiz de 10 questionsGratuit, sans pub

Résumé

La récursivité est une technique où une fonction s'appelle elle-même pour résoudre un problème en le décomposant en sous-problèmes plus simples. Toute fonction récursive a un cas de base (condition d'arrêt) et un cas récursif (appel avec un problème réduit). Exemple : fact(n) = n × fact(n-1) avec fact(0) = 1. Sans cas de base, la récursion est infinie et lève une RecursionError. La modularité consiste à découper un programme en modules réutilisables, importés avec import. Les spécifications (docstrings, assertions, tests) garantissent la fiabilité du code. La bibliothèque standard de Python fournit de nombreux modules prêts à l'emploi comme math, random ou os.

S'entraîner

Ce thème dans une autre classe

Questions fréquentes

Les points clés à retenir sur Récursivité et modularité, extraits du quiz de révision.

Qu'est-ce que le cas de base d'une fonction récursive ?
Réponse :
La condition d'arrêt qui ne fait pas d'appel récursif
Le cas de base arrête la récursion : sans lui, la fonction s'appellerait indéfiniment.
Que vaut fact(4) avec fact(0) = 1 et fact(n) = n × fact(n-1) ?
Réponse :
24
fact(4) = 4 × 3 × 2 × 1 × 1 = 24.
Que se passe-t-il si une fonction récursive n'a pas de cas de base ?
Réponse :
Elle provoque une RecursionError
Sans cas de base, la fonction s'appelle à l'infini : Python lève une RecursionError (vers 1000 appels).
Quelle est la complexité de la version récursive naïve de Fibonacci ?
Réponse :
$O(2^n)$ (exponentielle)
La version naïve recalcule sans cesse les mêmes valeurs, d'où une complexité exponentielle $O(2^n)$.