Exercices de Code

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

Tous niveaux Debutant Intermediaire Avance
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)

Suivre un parcours

Python Fondamental 3 sections
Developpeur Python 6 sections
Algorithmes & Entretiens 3 sections
Web & Django 4 sections
IA & Machine Learning 4 sections
IA Generative & RAG 5 sections
Automatisation & Scripts 5 sections
Neurosciences & IA 5 sections
Vision par Ordinateur 4 sections
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 →