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
Avancé 🧠 Fondamentaux Architecture & Patterns

Pattern Observer

L'Observer (ou publish/subscribe) est un pattern ou un objet (le Sujet) maintient une liste d'abonnes (les Observateurs) et les previent automatiquement quand quelque chose se …

30 XP 0 réussites
Résoudre →
observer pattern événements
Avancé 🧠 Fondamentaux Architecture & Patterns

Pattern Strategy

Le pattern Strategy permet de changer d'algorithme a la volee, comme quand tu changes de vitesse en voiture. Le moteur tourne toujours, mais la vitesse …

30 XP 0 réussites
Résoudre →
strategy pattern algorithme
Avancé 🧠 Fondamentaux Architecture & Patterns

Pattern Decorator (wrapper)

Le pattern Decorator (a ne pas confondre avec les decorateurs Python avec @) est un pattern GoF qui permet d'enrichir un objet en l'enveloppant dans …

30 XP 0 réussites
Résoudre →
decorator-pattern wrapper composition
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
Avancé 🧠 Fondamentaux Architecture & Patterns

Objet composite : Commande e-commerce

Modelisons quelque chose de concret : une commande e-commerce. C'est un excellent exemple de composition car les lignes de commande n'ont aucun sens en dehors …

30 XP 0 réussites
Résoudre →
composition e-commerce agrégat
Avancé 🧠 Fondamentaux Architecture & Patterns

Délégation avec __gétattr__

En Python, quand tu accedes a un attribut qui n'existe pas sur un objet, Python appelle la méthode speciale __gétattr__. C'est un filet de sécurité …

30 XP 0 réussites
Résoudre →
délégation __gétattr__ cache
Avancé 🧠 Fondamentaux Architecture & Patterns

Pattern Composite : Répertoire de fichiers

Le pattern Composite permet de traiter uniformement des objets individuels et des groupes d'objets. L'exemple classique, c'est un système de fichiers : un répertoire peut …

30 XP 0 réussites
Résoudre →
composite récursion pattern
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
Avancé 🧠 Fondamentaux Architecture & Patterns

OCP : Ouvert/Fermé

Le principe Open/Closed dit qu'un code doit etre ouvert a l'extension mais ferme a la modification. En clair : tu peux ajouter de nouveaux comportements …

30 XP 0 réussites
Résoudre →
SOLID OCP polymorphisme
Avancé 🧠 Fondamentaux Architecture & Patterns

LSP : Substitution de Liskov

Le principe de substitution de Liskov dit qu'une sous-classe doit pouvoir remplacer sa classe parente partout ou celle-ci est utilisee, sans casser le programme. Exemple …

30 XP 0 réussites
Résoudre →
SOLID LSP substitution
Avancé 🧠 Fondamentaux Architecture & Patterns

ISP : Ségrégation des interfaces

Le principe de segregation des interfaces (ISP) dit : ne force pas les classes a implémenter des méthodes qu'elles n'utilisent pas. Imagine une grosse interface …

30 XP 0 réussites
Résoudre →
SOLID ISP ABC
Avancé 🧠 Fondamentaux Architecture & Patterns

DIP : Inversion des dépendances

Le dernier principe SOLID est l'inversion des dependances (DIP) : les modules de haut niveau ne doivent pas dependre des modules de bas niveau. Les …

30 XP 0 réussites
Résoudre →
SOLID DIP injection-dépendances
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
Avancé 🧠 Fondamentaux Architecture & Patterns

Classe Protocol (duck typing formel)

Le duck typing, c'est le principe de Python : si ca marche comme un canard et que ca fait coin-coin, c'est un canard. Autrement dit, …

30 XP 0 réussites
Résoudre →
Protocol duck-typing typing
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
Avancé 🧠 Fondamentaux Architecture & Patterns

__init_subclass__ : validation des sous-classes

__init_subclass__ est une méthode speciale appelee automatiquement quand une classe herite de ta classe. C'est un moyen leger de controler ce que les sous-classes ont …

30 XP 0 réussites
Résoudre →
__init_subclass__ héritage validation
Avancé 🧠 Fondamentaux Architecture & Patterns

Decorateur de classe

Un decorateur de classe, c'est une fonction qui prend une classe en paramètre, la modifie, et la retourne. C'est comme un atelier de personnalisation : …

30 XP 0 réussites
Résoudre →
decorateur __repr__ metaprogrammation
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
Page 1 / 3 Suivant →