Exercices de Code

Pratique Python, IA Engineering et bien plus avec des exercices interactifs et des tests automatiques.

🎓 Parcours guidé Les sections dans l'ordre, étape par étape. 🔍 Explorer librement Par thème, niveau ou recherche.
Tous niveaux Débutant Intermédiaire Avancé
Tous les sujets Les Bases Python (71) Structures de données (40) Fonctions & Modules (106) POO (53) Architecture & Patterns (57) Algorithmes (47) Concepts Web & Django (50) IA & Data Science (22) Prompt Engineering (15) Projets guidés (81) Django Avancé (18) AI Engineering (19) Machine Learning (30) Entraîner son LLM (15) Computer Vision (18)
Intermédiaire 🧠 Fondamentaux Architecture & Patterns GRATUIT

Pattern Singleton

Le Singleton est un design pattern qui garantit qu'une classe n'a qu'une seule instance dans tout le programme. C'est comme le president d'un pays : …

20 XP 0 réussites
Résoudre →
singleton pattern classmethod
Intermédiaire 🧠 Fondamentaux Architecture & Patterns

Pattern Factory

La Factory (usine) est un pattern qui centralise la création d'objets. Au lieu de créer directement tes objets avec Cercle(5) ou Rectangle(3, 4), tu passes …

20 XP 0 réussites
Résoudre →
factory pattern staticmethod
Intermédiaire 🧠 Fondamentaux Architecture & Patterns GRATUIT

Composition : Moteur dans Voiture

La composition est une relation forte entre deux objets : l'objet compose crée lui-meme ses composants. C'est comme un corps humain et son coeur : …

20 XP 0 réussites
Résoudre →
composition has-a délégation
Intermédiaire 🧠 Fondamentaux Architecture & Patterns

Agrégation : Équipe et Joueurs

L'agregation est une relation faible entre objets : les composants existent independamment du tout. C'est comme une equipe de foot et ses joueurs : un …

20 XP 0 réussites
Résoudre →
agrégation has-a liste
Intermédiaire 🧠 Fondamentaux Architecture & Patterns GRATUIT

SRP : Responsabilité unique

Le premier principe SOLID est le Single Responsibility Principle (SRP) : une classe ne doit avoir qu'une seule raison de changer. Autrement dit, elle ne …

20 XP 0 réussites
Résoudre →
SOLID SRP responsabilité-unique
Intermédiaire 🧠 Fondamentaux Architecture & Patterns

Context Manager avec __enter__/__exit__

Un context manager, c'est un objet qui sait se preparer et se nettoyer tout seul. Quand tu ecris with open('fichier.txt') as f, le fichier s'ouvre …

20 XP 0 réussites
Résoudre →
context-manager __enter__ __exit__
Intermédiaire 🧠 Fondamentaux Architecture & Patterns

Callable avec __call__

En Python, tout objet qui definit la méthode __call__ peut etre appele comme une fonction. On dit qu'il est callable. C'est comme un distributeur automatique …

20 XP 0 réussites
Résoudre →
__call__ callable foncteur
Intermédiaire 🧠 Fondamentaux Architecture & Patterns

Protocole __hash__ et __eq__

En Python, pour mettre un objet dans un set ou l'utiliser comme clé de dictionnaire, il doit etre hashable. Cela veut dire qu'il doit avoir …

20 XP 0 réussites
Résoudre →
__eq__ __hash__ set
Intermédiaire 🧠 Fondamentaux Architecture & Patterns

Créer une classe avec type()

En Python, les classes sont elles-memes des objets. Et elles sont créées par type(). Quand tu ecris class Animal: ..., Python appelle en fait type('Animal', …

20 XP 0 réussites
Résoudre →
type metaclasse dynamique
Intermédiaire 🧠 Fondamentaux Architecture & Patterns

Pattern to_dict / from_dict

La serialisation, c'est transformer un objet Python en données transportables (un dictionnaire, du JSON, du XML...). La deserialisation, c'est l'inverse : reconstruire un objet depuis …

20 XP 0 réussites
Résoudre →
serialisation to_dict from_dict
Intermédiaire 🧠 Fondamentaux Architecture & Patterns

Serialisation JSON d'objets imbriques

Quand tu as des objets qui contiennent d'autres objets (par exemple un Client qui a une Adresse), la serialisation devient un peu plus complexe. Chaque …

20 XP 0 réussites
Résoudre →
json serialisation imbrique
Intermédiaire 🧠 Fondamentaux Architecture & Patterns

Dataclass serialisable

Les dataclasses sont un raccourci Python pour créer des classes qui stockent des données. Au lieu d'écrire __init__, __repr__, __eq__ a la main, le decorateur …

20 XP 0 réussites
Résoudre →
dataclass asdict serialisation
Intermédiaire 🧠 Fondamentaux Architecture & Patterns

Le piege du paramètre mutable par défaut

C'est probablement le piege le plus celebre de Python. Quand tu donnes une valeur par défaut mutable (comme une liste) a un paramètre de fonction, …

20 XP 0 réussites
Résoudre →
mutable-default piege intermediaire
Intermédiaire 🧠 Fondamentaux Architecture & Patterns

Portee locale vs globale

En Python, quand tu assignes une valeur a une variable dans une fonction, Python considere cette variable comme locale a la fonction. Ca veut dire …

20 XP 0 réussites
Résoudre →
nonlocal closure scope
Intermédiaire 🧠 Fondamentaux Architecture & Patterns

Ajouter une méthode a une classe (monkey patching)

Le monkey patching, c'est modifier une classe ou un module apres sa création, en lui ajoutant ou remplacant des méthodes ou des attributs. Le terme …

20 XP 0 réussites
Résoudre →
monkey-patching classe méthode
Intermédiaire 🧠 Fondamentaux Architecture & Patterns

Intercepter les attributs manquants avec __gétattr__

Quand tu accedes a un attribut d'un objet (par exemple obj.nom), Python suit un processus precis. Il cherche d'abord dans l'instance, puis dans la classe, …

20 XP 0 réussites
Résoudre →
gétattr attribut classe-speciale
Intermédiaire 🧠 Fondamentaux Architecture & Patterns

Créer un context manager

Un context manager, c'est un objet qui definit un contexte d'execution. Tu l'utilises avec le mot-cle with. L'exemple le plus courant est l'ouverture de fichier …

20 XP 0 réussites
Résoudre →
context-manager with intermediaire
Intermédiaire 🧠 Fondamentaux Architecture & Patterns

Context manager avec un générateur

Écrire une classe avec __enter__ et __exit__ peut etre un peu lourd pour des cas simples. Python propose un raccourci avec le decorateur contextmanager du …

20 XP 0 réussites
Résoudre →
contextmanager contextlib intermediaire
Intermédiaire 🧠 Fondamentaux Architecture & Patterns

Propriétés calculées avec property

Le decorateur @property permet de definir des attributs calcules. L'avantage, c'est que du point de vue de l'utilisateur, ca ressemble a un simple attribut, mais …

20 XP 0 réussites
Résoudre →
property getter setter
Intermédiaire 🧠 Fondamentaux Architecture & Patterns

Fixtures simples

Quand tu ecris des tests pour une appli e-commerce, tu as besoin des memes donnees partout : un utilisateur test, un panier avec des articles, …

20 XP 0 réussites
Résoudre →
testing fixtures données
Intermédiaire 🧠 Fondamentaux Architecture & Patterns

Tester une classe complete

Tester une methode isolee, c'est bien. Mais les vrais bugs apparaissent quand les methodes interagissent entre elles. Un compte bancaire peut accepter les depots et …

20 XP 0 réussites
Résoudre →
testing classes poo
Intermédiaire 🧠 Fondamentaux Architecture & Patterns

Mock basique

Tu testes un systeme de commande qui envoie un email de confirmation apres l'achat. Tu ne vas pas envoyer un vrai email a chaque test …

20 XP 0 réussites
Résoudre →
testing mock simulation
Intermédiaire 🧠 Fondamentaux Architecture & Patterns

Test parametrise

Tu as 20 cas a tester pour une seule fonction, et tu te retrouves a copier-coller le meme assert en changeant juste les valeurs : …

20 XP 0 réussites
Résoudre →
testing parametrise boucle
Intermédiaire 🧠 Fondamentaux Architecture & Patterns

Tester un validateur (approche TDD)

Dans beaucoup d'equipes pro, on ecrit les tests AVANT le code. Ca s'appelle le TDD (Test-Driven Development) et ca change completement ta facon de reflechir. …

20 XP 0 réussites
Résoudre →
testing tdd validation
Page 1 / 2 Suivant →