Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/07195.jsonl.gz/219

2. Formaliser -
lambda¶
Dans ce chapitre nous découvrons la fonction
lambda. C’est une façon de créer une fonction anonyme (sans nom). Une fonction lambda est composée d’un certain nombre de variables, suivi d’une expression qui utilise ces variables. Nous allons voir que :
le mot-clé
lambdapermet de définir une fonction anonyme,
l’expression
lambda x : expressionproduit une fonction,
la fonction
lambdapeut comporter zéro ou plusieurs variables.
2.1. Fonction lambda¶
Parfois nous avons besoin d’une petite fonction, sans que ça vaille la peine de la définir de façon explicite avec le mot clé
def et un nom de fonction.
Parfois nous avons juste besoin d’une fonction anonyme (sans nom). Une telle fonction s’appelle une fonction lambda. Voici le même exemple cette fois avec une fonction anonyme.
La fonction lambda en tant qu’objet, peut être affectée à une variable.
2.2. Visualiser¶
L’utilisation principale de la fonction lambda est pour les fonctions qui demandent comme argument une fonction.
Jusqu’à maintenant les arguments de nos fonctions étaient des valeurs tels que: nombres, angles, distances, couleurs.
Avoir une fonction comme argument est nouveau. Pour montrer ce nouveau principe, nous allons définir la fonction
tracer(). Elle prend comme argument une fonction
f qu’elle va évaluer dans un intervalle [-300, 300].
2.3. Exemples de fonctions¶
Voici encore 3 exemples de fonctions
la fonction
abs()renvoie la valeur absolue
la fonction constante renvoie la valeur 100 partout
la fonction modulo renvoie une trace en dent de scie
2.4. Fonction quadratique¶
La fonction
tracer() permet de tracer une fonction
f() dans un intervalle [-300, 300]. Nous traçons deux équations quadratiques.
2.5. La fonction de rappel¶
Revenons vers notre tout premier programme avec la fonction
onkey(). Nous voulons faire avancer la tortue quand la touche
a est appuyée. Nous sommes tentés de simplifier le programme et d’écrire ceci. Essayez-le, mais malheureusement ça ne fonctionne pas.
C’est ici que la fonction
lambda est très pratique. Nous pouvons créer une fonction anonyme (sans nom) et la passer comme argument directement dans
onkey().
Exercice : Faites avancer la tortue avec la touche
a.
2.6. Bouger la tortue¶
Avec la fonction lambda, notre programme de définition des fonctions de rappel devient beaucoup plus compact. Nous utilisons les fonctions :
xcor()pour lire la position actuelle de la coordonnée
x.
setx(val)pour assigner une nouvelle valeur à la coordonnée
x.
Comme cette dernière fonction n’agit pas sur l’orientation de la souris, nous choisissons le disque (
circle) comme forme pour la tortue.
2.7. Mettre tout ensemble¶
Faisons maintenant un programme qui met ensemble tout ce que nous avons vu dans le chapitre précédent dans un seul programme.
2.8. Écrire un nombre¶
Nous pouvons utiliser les touches pour écrire dans le canevas de la tortue. Pour avancer la tortue avec chaque lettre, nous choisissons l’option
move=True.
Il est nécessaire de définir une fonction de rappel pour chaque touche du clavier que nous voulons utiliser.
La fonction lambda nous permet de simplifier aussi la création des fonctions de rappel. Nous pouvons les créer dans une boucle, en parcourant une chaine de caractères auxquels nous voulons associer une fonction de rappel. Nous utilisons ici l’astuce de la valeur par défaut, pour passer un argument à la fonction
f().
Ce programme interactif permet d’utiliser les 10 chiffres pour écrire un nombre.
2.9. Écrire des lettres¶
Ce programme interactif permet d’utiliser les 26 lettres pour écrire un mot.
2.10. Écrire des couleurs¶
Ce programme permet d’utiliser les 26 touches de l’alphabet pour écrire des pixels avec des couleurs aléatoires.