Chapitre 2 : Les fonctions et les procédures en Python

  

Chapitre 2 : Les fonctions et les procédures en Python

1. Concept de Fonction

En programmation, une fonction est un bloc de code réutilisable qui accomplit une tâche spécifique. Les fonctions permettent de structurer et d'organiser le code de manière plus claire et modulaire. Elles facilitent la réutilisation du code et permettent de le maintenir plus facilement.

2. Définition et Utilité des Fonctions

Les fonctions sont définies pour encapsuler un ensemble d'instructions qui réalisent une opération spécifique. Elles permettent de :

  • Réutiliser le code : Écrire une fonction une seule fois et l'utiliser plusieurs fois dans le programme.
  • Améliorer la lisibilité : Diviser un programme complexe en morceaux plus simples et plus compréhensibles.
  • Faciliter la maintenance : Modifier une fonction sans toucher au reste du code qui l'utilise.

3. Syntaxe de Déclaration des Fonctions en Python

En Python, une fonction est définie à l'aide du mot-clé def, suivi du nom de la fonction et d'une liste de paramètres entre parenthèses. Le code de la fonction est indenté sous la déclaration. La syntaxe est la suivante :

python

def nom_de_la_fonction(param1, param2): # Bloc de code pass

4. Paramètres : Positionnels, Nommés, Valeurs par Défaut

Paramètres Positionnels

Les paramètres positionnels sont les plus courants et doivent être fournis dans l'ordre où ils sont définis dans la fonction :

python

def ajouter(a, b): return a + b resultat = ajouter(5, 3) # 8

Paramètres Nommés

Les paramètres nommés permettent de spécifier les valeurs des arguments par leur nom lors de l'appel de la fonction, ce qui peut rendre le code plus lisible :

python

def saluer(nom, message): print(f"Bonjour {nom}, {message}") saluer(nom="Alice", message="Bienvenue!") # Bonjour Alice, Bienvenue!

Valeurs par Défaut

Les valeurs par défaut permettent de définir des valeurs pour les paramètres qui ne sont pas spécifiés lors de l'appel de la fonction :

python

def exclamation(message, ponctuation='!'): print(message + ponctuation) exclamation("Hello") # Hello! exclamation("Hello", ".") # Hello.

5. Appel de Fonctions

L'appel d'une fonction se fait en utilisant son nom suivi de parenthèses contenant les arguments nécessaires. Exemple :

python

def multiplier(x, y): return x * y resultat = multiplier(4, 5) # 20

6. Passage de Paramètres par Valeur et par Référence

En Python, les arguments sont passés par référence (en réalité, par objet-référence). Cela signifie que si vous passez un objet mutable (comme une liste), les modifications apportées à cet objet dans la fonction affecteront l'objet original.

Exemple avec une Liste (Objet Mutable) :

python

def ajouter_element(liste, element): liste.append(element) ma_liste = [1, 2, 3] ajouter_element(ma_liste, 4) print(ma_liste) # [1, 2, 3, 4]

7. Valeur de Retour des Fonctions

Les fonctions peuvent renvoyer une valeur en utilisant le mot-clé return. Si aucune valeur n'est spécifiée, la fonction renvoie None par défaut.

python

def carre(x): return x * x resultat = carre(5) # 25

8. Procédures vs Fonctions

Procédures

Une procédure est une fonction qui n'a pas de valeur de retour. En Python, toutes les fonctions sont des fonctions, et les procédures sont simplement des fonctions qui ne renvoient rien ou renvoient None.

Fonctions

Une fonction est une procédure qui renvoie une valeur.

9. Différence entre Procédures et Fonctions

  • Procédures : N'ont pas de valeur de retour (ou renvoient None).
  • Fonctions : Renvoient une valeur.

10. Exemples d'Utilisation

python

def afficher_message(message): print(message) def somme(a, b): return a + b afficher_message("Bonjour") # Affiche : Bonjour total = somme(3, 4) # total est 7

11. Portée des Variables

La portée des variables détermine où une variable est accessible dans le code.

Variables Locales

Les variables définies à l'intérieur d'une fonction sont locales à cette fonction. Elles ne sont accessibles qu'à l'intérieur de la fonction.

python

def fonction(): x = 10 # x est une variable locale print(x) fonction() # print(x) # Erreur : x n'est pas défini

Variables Globales

Les variables définies en dehors des fonctions sont globales et accessibles partout dans le module.

python

x = 10 # x est une variable globale def fonction(): print(x) fonction() # Affiche : 10

Utilisation du Mot-Clé global

Le mot-clé global permet de modifier une variable globale à l'intérieur d'une fonction.

python

x = 10 def fonction(): global x x = 20 fonction() print(x) # Affiche : 20

12. Fonctions Anonymes (Lambda)

Les fonctions lambda sont des fonctions anonymes, c'est-à-dire sans nom, définies à l'aide du mot-clé lambda. Elles sont souvent utilisées pour des opérations simples.

Syntaxe et Usage des Fonctions Lambda

python

# Fonction lambda pour additionner deux nombres addition = lambda a, b: a + b resultat = addition(3, 4) # 7

Les fonctions lambda sont souvent utilisées comme arguments pour des fonctions comme mapfilter, et sorted.

13. Fonctions Intégrées et Modules

Fonctions Intégrées Courantes en Python

Python fournit un certain nombre de fonctions intégrées utiles, telles que :

  • print()
  • len()
  • type()
  • int()
  • str()

Importation et Utilisation des Modules

Les modules sont des fichiers Python contenant des définitions et des déclarations. Vous pouvez importer des modules et utiliser leurs fonctions dans votre code.

python

import math resultat = math.sqrt(16) # 4.0

Vous pouvez également importer des fonctions spécifiques depuis un module :

python

from math import pi, sqrt aire = pi * (sqrt(4)) ** 2 # 12.566370614359172