Exercices de récap de la syntaxe Python — Combiner flux de contrôle, fonctions et exceptions
Trois exercices qui rassemblent ce que tu as appris dans la syntaxe Python — flux de contrôle, fonctions, compréhensions, gestion d'exceptions et décorateurs — sous forme de problèmes de révision.
Problème 1 : filtrer et transformer avec une compréhension
Combine un filtre if à l'intérieur d'une compréhension de liste avec l'opérateur de puissance `. Choisis uniquement les éléments qui correspondent à une condition et transforme-les en autre chose** — c'est l'usage typique des compréhensions.
Problème 2 : construire une fonction de division sûre avec try / except
Écris safe_divide(a, b) pour qu'elle ne plante pas sur une division par zéro. Cela combine def pour définir une fonction, try / except pour attraper une exception, et l'utilisation de return pour renvoyer des valeurs différentes selon ce qui s'est passé.
try. En cas d'erreur, le contrôle saute au bloc except correspondant.Problème 3 : modifier la valeur de retour d'une fonction avec un décorateur
Construis un décorateur @double qui double la valeur retournée par la fonction enveloppée — sans toucher au corps de la fonction. Cela t'oblige à écrire le motif décorateur lui-même : une fonction qui prend une fonction et retourne une nouvelle fonction.
@double est équivalent à add = double(add).Bravo d'avoir tenu jusqu'ici
Cela conclut la syntaxe Python. Tu as couvert le flux de contrôle avec les conditions, les boucles et les exceptions, les définitions de fonctions avec def / lambda, les compréhensions, les fonctions d'ordre supérieur, les décorateurs et les générateurs — à peu près tous les outils dont tu as besoin pour piloter un programme. Tu peux désormais écrire toi-même des fonctions qui prennent des valeurs, les transforment et renvoient un résultat.
Le chapitre suivant, Programmation orientée objet en Python, consiste à définir tes propres types : écrire des class, mettre en place des constructeurs avec __init__, l'héritage, le polymorphisme, l'encapsulation, les méthodes spéciales comme __add__, les gestionnaires de contexte avec with et les annotations de type. C'est ainsi que tu regroupes données et comportement dans une seule conception.