NSI1ère

POO et récursivité en Python : les bases

Fiche de révision complète pour maîtriser POO et récursivité en Python : les bases en NSI — méthode, exemples et pièges à éviter.

Une classe définit des objets avec attributs et méthodes
L'héritage permet de créer des sous-classes spécialisées
La récursivité nécessite un cas de base et un appel simplifié
La récursivité est utile pour des problèmes imbriqués (ex: arbres)
Préférer l'itératif pour les calculs simples et la récursivité pour les structures complexes

Python — Programmation orientée objet et récursivité

1. Programmation Orientée Objet (POO)

La POO modélise les données sous forme d'objets (instances de classes) qui encapsulent des attributs (données) et des méthodes (fonctions).

Définition d'une classe

class Personne:
    def __init__(self, nom, age):  # Constructeur
        self.nom = nom
        self.age = age
    
    def se_presenter(self):  # Méthode
        return f"Je m'appelle {self.nom} et j'ai {self.age} ans."

# Création d'un objet
p1 = Personne("Alice", 17)
print(p1.se_presenter())  # Affiche : Je m'appelle Alice et j'ai 17 ans.

Concepts clés

  • Héritage : Une classe peut hériter d'une autre (ex: class Eleve(Personne)).
  • Encapsulation : Les attributs sont protégés (ex: self.__age pour un attribut privé).
  • Polymorphisme : Une méthode peut avoir plusieurs formes (ex: redéfinir __str__).

2. Récursivité

Une fonction est récursive si elle s'appelle elle-même. Elle doit avoir :

  • Un cas de base (arrêt de la récursion).
  • Un cas récursif (appel à soi-même avec un problème simplifié).

Exemple : Factorielle

def factorielle(n):
    if n == 0:  # Cas de base
        return 1
    else:      # Cas récursif
        return n * factorielle(n - 1)

print(factorielle(4))  # Affiche 24 (4! = 4×3×2×1)

Pièges à éviter

  • Boucle infinie : Oublier le cas de base.
  • Stack overflow : Trop d'appels récursifs (ex: n trop grand).

3. Comparaison itératif vs récursif

ItératifRécursif
Boucles (for, while)Appels de fonction
Plus efficace en mémoirePlus lisible pour certains problèmes
Exemple : calcul de factorielle avec une boucleExemple : tours de Hanoï

Quand utiliser la récursivité ? Pour des problèmes naturellement récursifs (arbres, fractales, etc.).

4. Bonnes pratiques

  • POO : Utiliser des noms de classes en PascalCase (ex: CompteBancaire).
  • Récursivité : Toujours vérifier le cas de base et la simplification du problème.
  • Tests : Vérifier les limites (ex: n=0 pour la factorielle).
Défi IA

Tu penses avoir maîtrisé ce concept ?

Affronte notre IA et valide tes acquis en 3 questions chronométrées. Aucune inscription requise pour commencer.

Programme officiel100% gratuitRésultat immédiat
Lancer le défi — Gratuit

Déjà inscrit ? Connecte-toi

Fiche générée selon le programme officiel Éducation nationaleToutes les fiches →
POO et récursivité en Python : les bases — Fiche de révision 1ère NSI | ProgresSchool