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
Débutant 🧠 Fondamentaux POO GRATUIT

Classe Rectangle

Une classe, c'est un plan de construction pour créer des objets. Imagine que tu dessines le plan d'une maison : le plan decrit les pieces …

10 XP 0 réussites
Résoudre →
classe init méthodes
Débutant 🧠 Fondamentaux POO GRATUIT

Classe BankAccount

En programmation objet, on peut ajouter de la logique de validation dans les méthodes. Par exemple, un compte bancaire ne doit pas permettre de retirer …

10 XP 0 réussites
Résoudre →
classe validation banque
Débutant 🧠 Fondamentaux POO GRATUIT

__str__ et __repr__

En Python, quand tu fais print(mon_objet), Python appelle la méthode speciale __str__ de l'objet. Et quand tu tapes mon_objet dans la console interactive, c'est __repr__ …

10 XP 0 réussites
Résoudre →
__str__ __repr__ dunder
Intermédiaire 🧠 Fondamentaux POO GRATUIT

__eq__ et __lt__

Par défaut, deux objets Python ne sont egaux que s'ils sont le meme objet en mémoire. Pour comparer leur contenu, il faut definir __eq__ (egalite) …

20 XP 0 réussites
Résoudre →
__eq__ __lt__ comparaison
Intermédiaire 🧠 Fondamentaux POO GRATUIT

__add__ et __mul__

Python te permet de definir ce que font les operateurs + et * sur tes propres objets. __add__ est appele quand tu ecris a + …

20 XP 0 réussites
Résoudre →
__add__ __mul__ vecteur
Intermédiaire 🧠 Fondamentaux POO

__len__ et __getitem__

Python utilise des méthodes speciales pour les opérations courantes : __len__ est appelee par len(objet) __getitem__ est appelee par objet[index] __contains__ est appelee par élément …

20 XP 0 réussites
Résoudre →
__len__ __getitem__ __contains__
Avancé 🧠 Fondamentaux POO

__iter__ itérable

Quand tu ecris for x in quelque_chose, Python appelle la méthode __iter__ de l'objet. Si cette méthode utilise yield, elle crée un générateur qui produit …

30 XP 0 réussites
Résoudre →
__iter__ yield itérable
Intermédiaire 🧠 Fondamentaux POO GRATUIT

Classe abstraite

Une classe abstraite est un modèle qu'on ne peut pas instancier directement. Elle sert de contrat : elle dit "toute classe qui herite de moi …

20 XP 0 réussites
Résoudre →
ABC abstractmethod interface
Intermédiaire 🧠 Fondamentaux POO GRATUIT

Property basique

Une property permet de controler l'acces a un attribut. C'est comme un vigile a l'entrée d'un batiment : chaque fois que quelqu'un entre ou sort, …

20 XP 0 réussites
Résoudre →
property getter setter
Intermédiaire 🧠 Fondamentaux POO GRATUIT

Property calculée

Une property calculée est un attribut qui n'est pas stocke directement mais recalcule a chaque acces. Si tu ne definis pas de setter, la property …

20 XP 0 réussites
Résoudre →
property calculée lecture-seule
Avancé 🧠 Fondamentaux POO

Validation avec property

La vraie puissance des properties, c'est la validation. Le setter peut refuser une valeur invalide en levant une exception. Imagine que tu remplis un formulaire …

30 XP 0 réussites
Résoudre →
property validation ValueError
Intermédiaire 🧠 Fondamentaux POO GRATUIT

Héritage multiple et MRO

En Python, une classe peut heriter de plusieurs classes parentes en meme temps. C'est l'héritage multiple. Quand tu ecris class Canard(Volant, Nageant), le Canard herite …

20 XP 0 réussites
Résoudre →
héritage-multiple MRO mixin
Intermédiaire 🧠 Fondamentaux POO

super() dans une chaîne d'héritage

Quand une classe herite d'une autre, son __init__ doit souvent appeler le __init__ du parent pour initialiser les attributs herites. C'est le role de super().__init__(). …

20 XP 0 réussites
Résoudre →
super chaîne-héritage init
Intermédiaire 🧠 Fondamentaux POO

Mixin de journalisation

Un mixin est une classe concue pour etre heritee en complement d'une autre. Elle apporte une fonctionnalité transversale (comme le logging, la serialisation, etc.) sans …

20 XP 0 réussites
Résoudre →
mixin logging héritage-multiple
Avancé 🧠 Fondamentaux POO

Override sélectif avec super()

Quand tu surcharges (override) une méthode dans une sous-classe, tu peux quand meme reutiliser la logique du parent avec super(). C'est comme une chaine de …

30 XP 0 réussites
Résoudre →
super override validation
Avancé 🧠 Fondamentaux POO

Mixin sérialisable

Un mixin tres utile en pratique, c'est celui qui permet de convertir un objet en dictionnaire ou en JSON. Ca sert partout : APIs, sauvegarde, …

30 XP 0 réussites
Résoudre →
mixin json sérialisation
Intermédiaire 🧠 Fondamentaux POO GRATUIT

Dataclass basique

En Python, quand tu créés une classe avec des attributs, tu dois écrire __init__, __repr__, __eq__... C'est beaucoup de code repetitif. Le decorateur @dataclass génère …

20 XP 0 réussites
Résoudre →
dataclass annotations __eq__
Intermédiaire 🧠 Fondamentaux POO

Dataclass avec valeurs par défaut

Dans une dataclass, tu peux donner des valeurs par défaut a certains champs. C'est comme les paramètres optionnels d'une fonction : ceux avec une valeur …

20 XP 0 réussites
Résoudre →
dataclass valeur-défaut field
Avancé 🧠 Fondamentaux POO

Dataclass avec __post_init__

Parfois, tu as besoin de faire quelque chose juste apres la création de l'objet : valider les données, calculer un champ derive, enregistrer l'objet quelque …

30 XP 0 réussites
Résoudre →
dataclass __post_init__ validation
Intermédiaire 🧠 Fondamentaux POO GRATUIT

Enum avec auto()

Un Enum (enumeration) représente un ensemble fixe de valeurs possibles. C'est comme les jours de la semaine : il y en a exactement 7, ni …

20 XP 0 réussites
Résoudre →
enum auto valeurs
Avancé 🧠 Fondamentaux POO

Dataclass + Enum combinés

En combinant dataclass et Enum, tu obtiens un typage fort : les champs ne peuvent prendre que des valeurs predefinies. C'est particulierement utile pour modeliser …

30 XP 0 réussites
Résoudre →
dataclass enum combinaison
Débutant 🧠 Fondamentaux POO GRATUIT

Créer une classe vide

En Python, une classe est un modèle qui sert a créer des objets. Pense a une classe comme un moule a gateau : le moule …

10 XP 0 réussites
Résoudre →
classe objet debutant
Débutant 🧠 Fondamentaux POO GRATUIT

Le constructeur __init__

Quand tu créés un objet, tu veux souvent lui donner des informations de depart. C'est le role de la méthode speciale __init__ (avec deux underscores …

10 XP 0 réussites
Résoudre →
init constructeur self
Débutant 🧠 Fondamentaux POO GRATUIT

Acceder aux attributs

Une fois qu'un objet est crée avec des attributs, tu peux y acceder avec la notation pointee : objet.attribut. Par exemple : class Personne: def …

10 XP 0 réussites
Résoudre →
attributs notation-pointee
Page 1 / 3 Suivant →