Numérique et Sciences Informatiques > Langages de Programmation > Introduction à un Langage Spécifique (Python par exemple) > Fonctions

Les Fonctions en Python : Guide Complet pour le Lycée

Découvrez le fonctionnement des fonctions en Python, un outil essentiel pour la programmation modulaire et réutilisable. Apprenez à définir, appeler et utiliser des fonctions avec paramètres et valeurs de retour, illustré par des exemples concrets adaptés aux élèves de lycée.

Qu'est-ce qu'une fonction ?

Une fonction est un bloc de code réutilisable qui effectue une tâche spécifique. Imaginez une recette de cuisine : la recette est la fonction, et les ingrédients sont les entrées (paramètres) de la fonction. Le plat final est le résultat (valeur de retour) de la fonction.

  • Réutilisation du code : Éviter de réécrire le même code à plusieurs reprises.
  • Modularité : Diviser un programme complexe en petites parties indépendantes.
  • Lisibilité : Rendre le code plus facile à comprendre et à maintenir.

Définir une fonction en Python

La syntaxe pour définir une fonction en Python est la suivante: def nom_de_la_fonction(paramètre1, paramètre2, ...): # Bloc de code de la fonction return valeur_de_retour

  • def : Mot-clé qui indique le début de la définition d'une fonction.
  • nom_de_la_fonction : Nom que vous choisissez pour votre fonction. Il doit être descriptif et suivre les conventions de nommage (par exemple, utiliser des minuscules et des underscores).
  • (paramètre1, paramètre2, ...) : Liste des paramètres que la fonction reçoit en entrée. Les paramètres sont optionnels.
  • : : Marque la fin de la ligne de définition de la fonction.
  • # Bloc de code de la fonction : Instructions que la fonction exécute. Il doit être indenté (généralement avec 4 espaces).
  • return valeur_de_retour : Instruction qui renvoie une valeur à l'appelant de la fonction. La valeur de retour est optionnelle. Si une fonction n'a pas d'instruction return, elle renvoie implicitement None.
Exemple : def afficher_message(nom): print("Bonjour, " + nom + "!") afficher_message("Alice") # Affiche : Bonjour, Alice!

Appeler une fonction

Pour exécuter le code d'une fonction, vous devez l'appeler en utilisant son nom suivi de parenthèses, en passant les arguments (valeurs) nécessaires pour les paramètres (si la fonction en a). nom_de_la_fonction(argument1, argument2, ...) Exemple : def additionner(a, b): somme = a + b return somme resultat = additionner(5, 3) print(resultat) # Affiche : 8 Dans cet exemple, 5 et 3 sont les arguments passés à la fonction additionner.

Paramètres et arguments

Les paramètres sont les variables listées dans la définition de la fonction. Ils agissent comme des placeholders pour les valeurs que la fonction recevra. Les arguments sont les valeurs réelles passées à la fonction lors de son appel. Le nombre d'arguments doit correspondre au nombre de paramètres définis (sauf si des valeurs par défaut sont utilisées, voir ci-dessous). Types de paramètres :

  • Paramètres positionnels : Les arguments sont passés dans l'ordre dans lequel les paramètres sont définis.
  • Paramètres nommés : Les arguments sont passés en spécifiant le nom du paramètre, permettant de changer l'ordre.
  • Paramètres avec valeurs par défaut : Un paramètre peut avoir une valeur par défaut. Si aucun argument n'est fourni pour ce paramètre lors de l'appel de la fonction, la valeur par défaut est utilisée.
Exemples : def saluer(nom, message="Bonjour"): print(message + ", " + nom + "!") saluer("Bob") # Affiche : Bonjour, Bob! saluer("Charlie", "Bonsoir") # Affiche : Bonsoir, Charlie! saluer(message="Salut", nom="David") # Affiche : Salut, David!

Valeur de retour

L'instruction return permet à une fonction de renvoyer une valeur à l'appelant. Cette valeur peut être utilisée dans d'autres parties du programme. Si une fonction ne contient pas d'instruction return, elle renvoie implicitement None (qui représente l'absence de valeur). Exemple : def calculer_surface_rectangle(longueur, largeur): surface = longueur * largeur return surface surface_du_rectangle = calculer_surface_rectangle(10, 5) print("La surface du rectangle est :", surface_du_rectangle) # Affiche : La surface du rectangle est : 50

Portée des variables

La portée d'une variable détermine où elle peut être accédée dans le code.

  • Variables locales : Définies à l'intérieur d'une fonction, elles ne sont accessibles qu'à l'intérieur de cette fonction.
  • Variables globales : Définies en dehors de toute fonction, elles sont accessibles partout dans le programme. Il est généralement déconseillé d'utiliser des variables globales de manière excessive, car cela peut rendre le code plus difficile à comprendre et à maintenir.
Exemple : x = 10 # Variable globale def ma_fonction(): y = 5 # Variable locale print("Variable locale y :", y) print("Variable globale x :", x) ma_fonction() # print(y) # Ceci provoquerait une erreur, car y n'est pas accessible en dehors de la fonction print("Variable globale x :", x)

Ce qu'il faut retenir

  • Une fonction est un bloc de code réutilisable qui effectue une tâche spécifique.
  • La définition d'une fonction commence par le mot-clé def, suivi du nom de la fonction, des paramètres (entre parenthèses) et d'un deux-points (:).
  • Le code de la fonction est indenté.
  • L'instruction return permet de renvoyer une valeur à l'appelant de la fonction.
  • Les paramètres sont les variables listées dans la définition de la fonction, tandis que les arguments sont les valeurs passées à la fonction lors de son appel.
  • On peut utiliser des paramètres positionnels, des paramètres nommés et des paramètres avec valeurs par défaut.
  • Les variables locales sont accessibles uniquement à l'intérieur de la fonction où elles sont définies, tandis que les variables globales sont accessibles partout dans le programme.

FAQ

  • Pourquoi utiliser des fonctions ?

    Les fonctions permettent de réutiliser du code, de rendre un programme plus modulaire et plus lisible. Elles facilitent également la maintenance du code.
  • Quelle est la différence entre un paramètre et un argument ?

    Un paramètre est une variable dans la définition de la fonction, tandis qu'un argument est la valeur passée à la fonction lors de son appel.
  • Que se passe-t-il si une fonction ne contient pas d'instruction return ?

    Si une fonction ne contient pas d'instruction return, elle renvoie implicitement None.