Dans un langage de programmation, on utilise ce qu'on appelle des fonctions. Une fonction est un ensemble d'instructions qui peut recevoir des 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 paramètres et renvoie des valeurs.
Exemple 1 : Prenons la fonction mathématique $f$ définie par $f(x) = 2x +1$. Celle-ci reçoit un paramètre (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(parametre1, parametre2, etc.):
bloc_instructions
return valeur_renvoyée_1, valeur_renvoyée_2, etc.
Analyse :
def
annonce que l'on va écrire une fonction ;:
) ;return
qui 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 concret.
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
À faire vous-même n°1
✍️ Inspectez le code de la fonction ci-dessus pour repérer :
À faire vous-même n°2
Vous allez maintenant écrire le code de la fonction prix_a_afficher
vous-même avec un éditeur de code.
prix_a_afficher
dans la fenêtre de gauche de l'éditeur.
Attention : ne supprimez pas le code et ne fermez pas l'éditeur, vous en aurez besoin pour la suite !
Vous avez peut-être essayé d'exécuter le code de la fonction précédente... Vous avez alors constaté que rien ne se passe, c'est normal ! En effet, une fois qu'une fonction est écrite, le bouton "Exécuter" ne permet que de mémoriser la fonction, autrement dit d'enregistrer en mémoire ce que doit faire la fonction.
Pour utiliser une fonction et exécuter son bloc d'instructions, il faut l'appeler pour connaître la valeur qu'elle renvoie, cet appel se fait dans la zone de droite de l'éditeur que l'on appelle la console : suivez ce qui suit pour le faire :
À faire vous-même n°3
Vous allez désormais appeler la fonction précédente pour l'utiliser. Voici comment procéder :
prix_a_afficher
du "À faire vous-même n°2" .prix_a_afficher
prix_a_afficher(3)
puis en appuyant sur la touche Entrée du clavier (et pas sur le bouton "Exécuter" !!). A faire vous-même n°4
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. C'est l'éditeur replit qui est utilisé dans la vidéo mais le principe est exactement le même.
A faire vous-même n°5
On veut écrire une fonction Python qui permet de renvoyer la différence (= la soustraction) de deux nombres.
A faire vous-même n°6
Crédit : Pixabay
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°7
Crédit : Pixabay
La couleur d'un pixel est définie par 3 composantes : une composante de rouge (R), une composante de vert (V) et une composante de bleu (B). Chacune de ces composantes 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$$
Par exemple, un pixel rouge pur a pour composantes : $R=255$, $V=0$ et $B=0$. La nuance de gris de ce pixel se calcule alors ainsi : $G=0,11 \times 255+0,82 \times 0 + 0,06 \times 0 = 28,05$. On prend alors la valeur entière la plus proche, c'est-à-dire $28$.
gris
qui possède trois paramètres R
, V
et B
correspondant aux composantes RVB d'un pixel, et qui renvoie la nuance de gris correspondante du pixel.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. Le programme Python a pour but de convertir l'image ci-dessous (le fichier girl.jpg) en niveaux de gris. Pour cela, vous n'avez qu'à copier votre fonctiongris
en début de programme. Cliquez ensuite sur le bouton "Afficher la vue graphique" et exécutez le code. Vous devriez voir, après quelques secondes, l'image convertie en niveaux de gris.![]()
Crédit : Pixabay
A faire vous-même n°8
Crédit : Cormullion, CC BY-SA 4.0, via Wikimedia Commons
Le module turtle
(tortue) permet de dessiner avec Python. Vous allez en particulier écrire des fonctions permettant de dessiner des carrés et des triangles.
Cliquez sur ce lien pour ouvrir un programme Python avec Basthon.
carre
dans la fenêtre de gauche (éditeur) car on va utiliser celle de droite pour voir le dessin produit (à la place de la console).carre
.carre
dessine des carrés rouges de côté 50 pixels. Vérifiez en exécutant à nouveau le code.triangle
qui dessine un triangle équilatéral de côté 100 de la couleur de votre choix. Appelez cette nouvelle fonction pour la tester.carre
et triangle
pour qu'elles aient chacune un paramètre cote
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.