4. Définition de fonctions¶
Mémento Python
Raccourcis clavier
Définir ses propres fonctions¶
Il est souvent utile d’écrire ses propres fonctions, afin de ne pas avoir à écrire plusieurs fois le même bout de code🙏
En programmation, le concept de fonction n’est pas exactement le même qu’en mathématiques.
Il faut plutôt le voir comme un sous-programme auquel on fournit des objets et qui peut en retourner d’autres.
Pour définir une fonction, il faut indiquer les éléments suivants :
Le mot-clé
def
suivi du nom de la fonction puis de deux points (:).Les arguments, ou paramètres, qui indiquent quels sont les objets à fournir à la fonction pour que le programme puisse l’exécuter. Certaines fonctions ne prennent aucun argument.
La liste des instructions de la fonction, autrement dit, le sous-programme effectué par la fonction. La liste des instructions est indentée par rapport au programme principal, c’est-à-dire qu’elle est décalée à droite. Une liste d’instruction est aussi appelée un bloc d’instruction.
Dans le cas où la fonction retourne un résultat, il est nécessaire d’utiliser le mot-clé
return
suivi de l’objet à retourner.
Ces quatre éléments constituent la définition de la fonction. Une fois une fonction ainsi définie, on peut l’utiliser (l’appeler) autant de fois que l’on désire dans un programme 🤩
Voici la syntaxe générale pour définir une fonction et l’appeler :
def nom_de_votre_fonction(argument1, argument2, ...):
...
# bloc d'instruction
...
# return resultat (optionnel)
nom_de_votre_fonction(arg1, arg2, ...) # Appel de la fonction
...
nom_de_votre_fonction(argx, argy, ...) # Un autre appel de la fonction (avec des arguments différents)
⚠️ Rappelez-vous de ceci ⚠️ :
On définit une fonction qu’une seule fois.
On appelle une fonction autant de fois que l’on veut.
Si on ne l’appelle pas, la fonction n’est pas exécutée.
L’exemple ci-dessus montre la définition d’une fonction nommée au_cube
prenant 1 argument et retournant le cube de cet argument.
Exercice 12
Ecrivez une fonction au_carre(n)
qui calcule le carré d’un nombre et le retourne.
Utilisez cette fonction pour calculer et afficher le carré des nombres 6, -5 et 573.28.
Solution
L’exemple suivant montre la définition d’une fonction qui ne retourne aucune valeur: la fonction ne se termine pas par le mot-clé return
.
La fonction s’exécute (ici elle affiche des choses) mais ne retourne rien.
Notez que les arguments doivent être donnés dans le même ordre que dans la définition de la fonction afin que le programme sache quelle entrée correspond à quel argument.
Exercice 13
Modifiez l’exemple ci-dessus pour ajouter un troisième argument de votre choix à la fonction saluer()
.
Faites en sorte que la fonction utilise ce nouvel argument dans son message de bienvenue puis appelez la fonction.
Solution
L’exemple ci-dessous montre une fonction prenant en arguments le rayon et la hauteur d’un cylindre afin d’en retourner le volume 🤓
Exercice 14
L’indice de masse corporelle (IMC) d’une personne est donné par son poids (en kg) divisé par le carré de sa taille (en mètres).
Ecrivez une fonction qui prend le poids et la taille en argument et retourne l’IMC.
Utilisez cette fonction dans un programme qui demande son poids et sa taille à l’utilisateur et affiche son IMC dans le terminal.
Exemple d’exécution :
Entrez votre poids (kg) : 84
Entrez votre taille (m) : 1.84
Votre IMC est de 24.810964083175
L’IMC n’est q’un indicateur et ne permet absolument pas, à lui seul, de déterminer l’état de santé d’une personne.
Solution
Exercices Turtle 🐢 (facultatif)¶
Exercice - Une maison fonctionnelle
Il est temps d’améliorer notre code permettant de dessiner une maison grâce aux fonctions ! 🤩
Ecrivez une fonction
carre(taille)
qui dessine un carré de la taille passée en argument.Ecrivez une fonction
triangle(taille)
qui dessine un triangle équilatéral avec la taille passée en argument.Enfin, écrivez une fonction
maison(taille)
qui appelle les 2 fonctions précédentes pour dessiner une maison de la taille passée en argument.
Solution