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 map
, filter
, 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