Pratique Python, IA Engineering et bien plus avec des exercices interactifs et des tests automatiques.
Regrouper des employés par département, des commandes par client, des logs par niveau de sévérité : c'est une opération que tu feras constamment en tant …
Les réponses d'API et les fichiers de configuration JSON sont souvent imbriqués sur plusieurs niveaux. Accéder à config['database']['postgres']['port'] est fragile : si une clé manque …
Les comprehensions peuvent être imbriquées, c'est-à-dire contenir plusieurs boucles for. L'ordre de lecture est le même que si tu écrivais les boucles normalement. Par exemple, …
Un problème classique en programmation : trouver les N éléments les plus fréquents dans une collection. C'est utilisé partout : les mots les plus cherchés, …
Pour terminer ce chapitre, on va combiner tout ce qu'on a vu : dictionnaires, sets, comprehensions et tuples dans un problème réaliste. Imagine que tu …
En mathematiques, la composition de fonctions c'est appliquer une fonction au résultat d'une autre. Si tu as f et g, la composee f apres g …
Un decorateur en Python, c'est une higher-order function qui prend une fonction en argument et renvoie une nouvelle fonction enrichie. C'est la combinaison parfaite de …
Jusqu'ici, nos decorateurs ne prenaient pas de paramètres. Mais parfois, tu veux configurer le decorateur. Par exemple, repeter une fonction 3 fois, ou 5 fois, …
Le vrai pouvoir du pattern matching, c'est le matching structurel : tu peux matcher sur la structure d'un tuple ou d'une liste et en extraire …
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 …
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, …
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 …
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 …
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 …
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 …
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 …
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 …
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 …
C'est le moment d'assembler toutes les pieces ! On crée une fonction qui orchestre tout le processus de commande. La fonction recoit un client, un …