Exercices Fonctions & Modules Fabrique de fonctions
🎉

Bravo!

Intermédiaire 🧠 Fondamentaux 20 XP 0 personnes ont réussi

Fabrique de fonctions

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 sur mesure.

L'idee, c'est qu'au lieu de renvoyer une valeur, ta fonction renvoie un comportement. La fonction renvoyee peut etre une lambda ou une fonction definie avec def a l'interieur.

def fabrique_salutation(formule):
def saluer(nom):
return formule + ' ' + nom
return saluer

bonjour = fabrique_salutation('Bonjour')
bonjour('Alice') # renvoie 'Bonjour Alice'

salut = fabrique_salutation('Salut')
salut('Bob') # renvoie 'Salut Bob'

Écris une fonction make_checker(check_type) qui prend une chaine et renvoie une fonction de vérification. Si check_type vaut 'pair', la fonction renvoyee vérifie si un nombre est pair. Si check_type vaut 'positif', elle vérifie si un nombre est positif (superieur ou egal a zero). Si check_type vaut 'negatif', elle vérifie si un nombre est strictement negatif. Pour tout autre valeur, leve une ValueError.

Exemple :
est_pair = make_checker('pair')
est_pair(4) renvoie True
est_pair(3) renvoie False
est_positif = make_checker('positif')
est_positif(-1) renvoie False

Tests (4/5)

Pair True
f = make_checker('pair')
assert f(4) == True
Pair False
f = make_checker('pair')
assert f(3) == False
Positif
f = make_checker('positif')
assert f(-1) == False
Negatif
f = make_checker('negatif')
assert f(-5) == True

+ 0 tests cachés

Indices (3 disponibles)

solution.py