Dans un langage de programmation, on utilise ce qu'on appelle des fonctions. Une fonction est un ensemble d'instructions qui peut recevoir des arguments ou paramètres (qui sont des valeurs ou des variables) et qui peut renvoyer le contenu d'une ou plusieurs variables.
Pourquoi utilise-t-on le mot fonction ?
Par analogie, on utilise le même terme qu'en mathématiques car le principe est identique puisqu'une fonction mathématique reçoit aussi des arguments et renvoie des valeurs.
Exemple 1 : Prenons la fonction mathématique $f$ définie par $f(x) = 2x +1$. Celle-ci reçoit un argument (ici $x$) et renvoie une valeur (ici $2x+1$). Cette fonction mathématique $f$ s'écrirait en la fonction Python suivante.
def f(x):
return 2 * x + 1
Les fonctions (en programmation) ne servent pas qu'à faire des mathématiques, loin de là, et sont énormément utilisées, partout, tout le temps.
Une fonction Python a la syntaxe suivante :
def nom_fonction(argument1, argument2, etc.):
bloc_instructions
return valeur_renvoyée_1, valeur_renvoyée_2, etc.
Analyse :
def
annonce que l'on va écrire une fonction ;:
) ;return
permet de renvoyer le contenu d'une ou plusieurs variables (séparées par des virgules s'il y en a plusieurs)Pour fixer les idées, prenons un exemple.
Exemple 2
Sur un site de vente en ligne, il est possible de modifier la quantité du produit que l'on souhaite acheter (souvent avec des boutons "+" et "-"). Prenons l'exemple d'un paquet de farine bio coûtant 1,15 €. A chaque clic sur un des boutons "+" ou "-", une fonction est chargée de calculer le prix à afficher à l'écran en fonction de la quantité sélectionnée par l'acheteur. Cette fonction pourrait être définie en Python de la façon suivante.
def prix_a_afficher(quantite):
prix = 1.15 * quantite
return prix
A faire vous-même n°1
Inspectez le code de la fonction ci-dessus pour repérer :
Une fois qu'une fonction est écrite et mémorisée, on peut l'appeler pour connaître la valeur qu'elle renvoie.
Exemple 1 : Avec la fonction f
précédente, pour connaître la valeur renvoyée dans le cas où l'argument x
vaut 3, il suffit de taper f(3)
dans la console et de valider. On dit dans ce cas que l'on effectue un appel à la fonction f
(pour la valeur 3). On peut faire autant d'appel que l'on souhaite avec d'autres valeurs.
Pour cet exemple, chaque appel permet de connaître l'image par la fonction f de l'argument choisi (l'image de 3 par f vaut 7, etc.)
Exemple 2 : La fonction prix_a_afficher
est appelée à chaque fois qu'un client modifie la quantité souhaitée.
Selon la quantité sélectionnée par le client sur le site, c'est la fonction prix_a_afficher
qui est appelée. Pour une quantité choisie égale à 2, c'est l'appel prix_a_afficher(2)
qui est fait, tandis que si la quantité choisie est égale à 5, c'est l'appel prix_a_afficher(5)
qui est effectué. Les valeurs renvoyées peuvent ensuite être affichées à l'écran.
A faire vous-même n°2
Regardez la vidéo suivante qui vous montre comment écrire une fonction avec un éditeur Python et comment l'appeler pour connaître les valeurs qu'elle renvoie.
A faire vous-même n°3
On veut écrire une fonction Python qui permet de renvoyer la différence (= la soustraction) de deux nombres.
A faire vous-même n°4
La définition d'une image numérique est le nombre de pixels qui composent l'image. Par exemple, une image de 800 pixels en largeur et 600 pixels en hauteur a une définition égale à 800 x 600 = 480 000 pixels.
L
pixels en largeur et H
pixels en hauteur.def definition_image(L, H):
# à compléter
A faire vous-même n°5
Crédit : Pixabay
La couleur d'un pixel est définie par 3 valeurs : une valeur de rouge (R), une valeur de vert (V) et une valeur de bleu (B). Chacune de ces valeurs est un nombre entier comprise entre 0 et 255.
Un des filtres disponibles sur les smartphones consiste à transformer une photo couleur en une photo en nuances de gris. Pour cela, un algorithme est chargé de calculer la nuance de gris $G$ de chaque pixel à partir des nuances $R$, $V$ et $B$. La formule permettant de faire ce calcul est la suivante :
$$G = 0,11 \times R + 0,83 \times V + 0,06 \times B$$
gris
qui renvoie la nuance de gris d'un pixel à partir de ses composantes R, V et B.Pour les curieux : on peut utiliser cette fonction
gris
et l'appliquer à chaque pixel d'une image pour la convertir en une image en niveaux de gris. Pour tester cela, suivez ce lien puis cliquez sur "Fork". Regardez l'image "girl.jpg" dans les fichiers sur la fenêtre de gauche. Le programme Python a pour but de la convertir en niveaux de gris. Pour cela, vous n'avez qu'à copier votre fonctiongris
en début de programme et l'exécutez. Regardez la nouvelle image créée par ce programme Python (elle se situe dans le fichiers à gauche et s'appelle "grey_girl.jpg").
A faire vous-même n°6
Les dimensions des écrans (d'ordinateur, de smartphone, de TV, ...) sont très souvent données en pouces (notés "), qui est une unité de longueur anglo-saxonne. On sait que 1 " $\simeq$ 2,54 cm.
On souhaite écrire une fonction permettant de convertir en cm une valeur donnée en pouce.
A faire vous-même n°7
Crédit : Cormullion, CC BY-SA 4.0, via Wikimedia Commons
Le module turtle
(tortue) permet de dessiner avec Python.
Cliquez sur le lien suivant pour ouvrir un programme Python : https://repl.it/@beckerg/turtle. Cliquez ensuite sur le bouton "Fork" pour copier ce programme sur votre compte.
carre
dans la console (on laisse les parenthèses vides car elle n'a pas d'argument) et observez ce qu'elle fait.carre
dessine des carrés rouges de côté 50 pixels. triangle
qui dessine un triangle équilatéral de côté 100 de la couleur de votre choix. carre
et triangle
pour qu'elles aient chacune un paramètre c
qui détermine la taille des côtés du carré ou du triangle. Par exemple, carre(70)
doit dessiner un carré de côté 70 pixels, triangle(100)
doit dessiner un triangle équilatéral de côté 100 pixels.