Définition
En programmation, une fonction est un bloc de code réutilisable qui effectue une tâche spécifique. Elle prend des arguments (ou paramètres) en entrée, effectue des opérations, et peut renvoyer un résultat. Définir une fonction permet de structurer un programme, d'éviter la répétition de code et de faciliter la maintenance.
Méthode : Définir et utiliser une fonction en Python
Définir la fonction
Utiliser le mot-clé def suivi du nom de la fonction, des parenthèses contenant les arguments (s'il y en a), et d'un double point :. Le corps de la fonction doit être indenté.
Spécifier les arguments
Les arguments sont des variables locales à la fonction. Ils sont séparés par des virgules. Si une fonction n'a pas d'arguments, les parenthèses restent vides.
Écrire le corps de la fonction
C'est l'ensemble des instructions qui seront exécutées lorsque la fonction sera appelée. Chaque ligne doit être indentée (généralement 4 espaces).
Renvoyer un résultat (optionnel)
Utiliser le mot-clé return suivi de la valeur à renvoyer. Si return n'est pas utilisé, la fonction renvoie implicitement None. L'exécution de la fonction s'arrête dès qu'un return est rencontré.
Appeler la fonction
Pour exécuter le code de la fonction, il faut l'appeler en utilisant son nom suivi des parenthèses contenant les valeurs des arguments (s'il y en a). Le résultat peut être stocké dans une variable.
Exemple résolu
calculer_aire_rectangle qui prend en arguments la longueur et la largeur d'un rectangle, et renvoie son aire. Ensuite, utiliser cette fonction pour calculer l'aire d'un rectangle de longueur $5$ et de largeur $3$.calculer_aire_rectangle et elle prend deux arguments : longueur et largeur.def calculer_aire_rectangle(longueur, largeur):aire. aire = longueur * largeur return airelongueur = 5 et largeur = 3, et on stocke le résultat dans une variable resultat_aire.resultat_aire = calculer_aire_rectangle(5, 3)print(f"L'aire du rectangle est : {resultat_aire}")def calculer_aire_rectangle(longueur, largeur):
aire = longueur * largeur
return aire
resultat_aire = calculer_aire_rectangle(5, 3)
print(f"L'aire du rectangle est : {resultat_aire}")
# Affiche : L'aire du rectangle est : 15Piège fréquent en Seconde : Indentation et portée des variables
- Erreur d'indentation : Oublier d'indenter le corps de la fonction ou utiliser une indentation inconsistante (par exemple, mélanger espaces et tabulations) provoque une erreur
IndentationError. - Variable non définie : Tenter d'utiliser une variable définie à l'intérieur d'une fonction (variable locale) en dehors de celle-ci. Les variables locales n'existent que pendant l'exécution de la fonction.
- Oublier
return: Si une fonction est censée renvoyer une valeur mais que le mot-cléreturnest omis, la fonction renverraNonepar défaut, ce qui peut entraîner des erreurs si le programme s'attend à un nombre ou une chaîne de caractères.
Exercice type contrôle
Écrire un programme Python qui définit et utilise une fonction nomméeest_pair. Cette fonction prend un nombre entier en argument et renvoie True si le nombre est pair, et False sinon.- Définir la fonction
est_pair. - Utiliser cette fonction pour tester si les nombres $10$ et $7$ sont pairs, puis afficher le résultat pour chacun.
def est_pair(nombre):
# Un nombre est pair si le reste de sa division par 2 est 0
if nombre % 2 == 0:
return True
else:
return False
# Test pour le nombre 10
resultat_10 = est_pair(10)
print(f"Le nombre 10 est-il pair ? {resultat_10}")
# Test pour le nombre 7
resultat_7 = est_pair(7)
print(f"Le nombre 7 est-il pair ? {resultat_7}")
Explication :
- La fonction
est_pairprend un argumentnombre. - L'opérateur modulo
%donne le reste de la division. Sinombre % 2est égal à $0$, le nombre est pair. - La fonction renvoie
TrueouFalseselon le résultat du test. - Les appels
est_pair(10)etest_pair(7)exécutent la fonction et leurs résultats sont affichés.
Affichage attendu :
Le nombre 10 est-il pair ? True
Le nombre 7 est-il pair ? False
Questions fréquentes
Quelle est la différence entre un argument et un paramètre ?
longueur et largeur dans def calculer_aire_rectangle(longueur, largeur):). Le terme argument est utilisé lors de l'appel de la fonction, c'est la valeur concrète passée au paramètre (ex: $5$ et $3$ dans calculer_aire_rectangle(5, 3)).Peut-on définir une fonction sans arguments ?
def saluer():
print("Bonjour !")
saluer() # Appel de la fonctionQue se passe-t-il si une fonction ne contient pas de return ?
return explicite, elle renvoie implicitement la valeur spéciale None. C'est un type de données en Python qui représente l'absence de valeur. Par exemple :def ma_fonction_sans_return():
a = 5 + 3
resultat = ma_fonction_sans_return()
print(resultat) # Affiche : NoneEst-ce que l'ordre des arguments est important lors de l'appel d'une fonction ?
Pour aller plus loin
Le passage en Seconde est difficile ?
Adil accompagne les élèves de Seconde, à domicile dans le Val d'Oise ou en ligne. Un seul prof, du premier cours jusqu'au Bac.