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
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 →