Pratique Python, IA Engineering et bien plus avec des exercices interactifs et des tests automatiques.
En Python, une fonction est un objet comme un autre. Tu peux la stocker dans une variable, exactement comme tu stockerais un nombre ou un …
Puisqu'une fonction est un objet, on peut la passer en argument a une autre fonction. C'est comme donner une recette a quelqu'un et lui dire …
Maintenant que tu sais passer une fonction en paramètre, on peut aller plus loin : passer plusieurs fonctions et les appliquer toutes a la meme …
Une lambda, c'est une fonction anonyme ecrite en une seule ligne. On l'utilise quand on a besoin d'une petite fonction jetable, qu'on ne reutilisera pas …
Une fonction peut renvoyer une autre fonction. On appelle parfois ca une fabrique de fonctions (function factory). C'est comme un atelier qui produit des outils …
Une closure (fermeture en francais), c'est une fonction qui se souvient de l'environnement dans lequel elle a ete créée, meme apres que cet environnement a …
Les closures peuvent capturer n'importe quel type de donnee, pas seulement des nombres. On peut s'en servir pour créer des fonctions avec de la mémoire. …
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 …
Quand quelque chose tourne mal en Python, une exception est levee. Si personne ne l'attrape, le programme plante avec un message d'erreur. Pour eviter ca, …
En Python, chaque module (c'est-a-dire chaque fichier .py) contient des fonctions, des classes et des variables. Quand tu importes un module, tu peux decouvrir son …
En Python, quand tu executes un fichier directement (python mon_fichier.py), la variable speciale __name__ vaut '__main__'. Mais quand ce meme fichier est importe comme module …
Parfois, tu ne sais pas a l'avance quel module tu veux importer. Le nom du module peut venir d'un fichier de configuration ou d'un choix …
Un decorateur, c'est une fonction qui prend une autre fonction en paramètre et renvoie une nouvelle fonction qui l'enveloppe. Imagine un cadeau : la fonction …
Les decorateurs sont tres utiles pour ajouter des vérifications sans modifier la fonction originale. Un cas courant : vérifier que les arguments passes sont du …
Les fonctions en Python sont des objets. Ca veut dire que tu peux leur ajouter des attributs, comme a n'importe quel objet. Par exemple, apres …
Quand tu utilises un decorateur, la fonction decoree perd son nom et sa docstring. Regarde : def mon_deco(func): def wrapper(*args, **kwargs): return func(*args, **kwargs) return …
La memoization est une technique d'optimisation qui consiste a stocker les résultats d'appels précédents pour eviter de recalculer. C'est comme prendre des notes : au …
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, …
En Python, quand tu écris une boucle for sur une liste, il se passe quelque chose sous le capot. Python appelle d'abord iter() sur la …
Pour qu'un objet soit utilisable dans une boucle for, il doit respecter le protocole itérable. Ça veut dire qu'il doit avoir une méthode __iter__() qui …
Les générateurs sont une manière beaucoup plus simple de créer des itérateurs. Au lieu d'écrire une classe avec __iter__ et __next__, tu écris une simple …
La suite de Fibonacci est une séquence où chaque nombre est la somme des deux précédents : 0, 1, 1, 2, 3, 5, 8, 13, …
Tu as peut-être déjà écrit une fonction qui renvoie la liste des nombres premiers. Avec un générateur, on peut faire mieux : au lieu de …