Les fonctions en
Python
P r. M o h a m m e d E S . S A B R Y Année Universitaire:
[Link]@[Link] 2025 - 2026
Introduction aux fonctions
En programmation, une fonction est un bloc d’instructions qui permet
d’effectuer une tâche précise.
Une fonction :
est définie une seule fois
peut être utilisée plusieurs fois
permet de structurer un programme complexe
En Python, les fonctions jouent un rôle similaire aux fonctions
mathématiques :
elles prennent des entrées (paramètres)
elles produisent un résultat (valeur retournée)
Pr. Mohammed [Link]
1
Pourquoi utiliser des fonctions ?
Dans un programme, on répète souvent les mêmes calculs
x1 = 5
Cela rend le code :
y1 = x1 ** 2 + 3 * x1 + 1
long
print(y1)
difficile à modifier
source d’erreurs
x2 = 7
y2 = x2 ** 2 + 3 * x2 + 1
print(y2)
x3 = 10
y3 = x3 ** 2 + 3 * x3 + 1
print(y3)
P r. M o h a m m e d E S . S A B R Y
Solution : définir une fonction
On définit une fonction pour représenter le calcul
On l’utilise pour différentes valeurs
def f(x):
return x ** 2 + 3 * x + 1
print(f(5))
print(f(7))
print(f(10))
Avantages
Code plus clair
Réutilisable
Proche des mathématiques
P r. M o h a m m e d E S . S A B R Y
2
Définir une fonction en Python
En Python, une fonction est définie à l’aide du mot-clé :
def (définir)
La syntaxe générale est :
def nom_fonction():
instructions
instructions
def : mot-clé pour définir une fonction
nom_fonction : nom choisi par le programmeur
() : parenthèses obligatoires
: : début du bloc de la fonction
Le nom de la fonction doit être clair et significatif
Une fonction ne s’exécute pas automatiquement après sa définition
P r. M o h a m m e d E S . S A B R Y
Importance de l’indentation
En Python, l’indentation est obligatoire pour définir les blocs de code.
Toutes les instructions d’une fonction doivent être indentées.
def carre(x):
Exemple y = x ** 2
correct return y
def carre(x):
Exemple incorrect y = x ** 2
return y
L’indentation standard est de 4 espaces
Elle permet de structurer le programme
P r. M o h a m m e d E S . S A B R Y
3
Comment utiliser une fonction ?
Après avoir défini une fonction, il faut l’appeler pour l’exécuter.
Syntaxe : nom_fonction()
def carre(x):
return x ** 2
Exemple
print(carre(3))
print(carre(5))
Interprétation
carre(3) → calcule 32 = 9
carre(5) → calcule 52 = 25
P r. M o h a m m e d E S . S A B R Y
Les paramètres d’une fonction
Les paramètres permettent de passer des valeurs à une fonction.
Ils sont définis entre les parenthèses lors de la définition.
def carre(x):
return x ** 2
Exemple
Ici :
x est un paramètre
P r. M o h a m m e d E S . S A B R Y
4
Paramètres vs Arguments
Paramètre : variable dans la définition de la fonction
Argument : valeur réelle donnée lors de l’appel
def carre(x): # x = paramètre
return x ** 2
Exemple
print(carre(4)) # 4 = argument
À retenir
Paramètre = variable
Argument = valeur
P r. M o h a m m e d E S . S A B R Y
Fonctions avec plusieurs paramètres
Une fonction peut prendre plusieurs paramètres.
def polynome(x, a, b, c):
return a * x ** 2 + b * x + c
Exemple
print(polynome(2, 1, 3, 1))
Interprétation
𝑥 = 2, 𝑎 = 1, 𝑏 = 3, 𝑐 = 1
Résultat :
𝟏 × 𝟐𝟐 + 𝟑 × 𝟐 + 𝟏
P r. M o h a m m e d E S . S A B R Y
5
Respect du nombre d’arguments
Lors de l’appel d’une fonction, il faut respecter le nombre de paramètres définis.
Sinon, Python génère une erreur.
def somme(a, b):
return a + b
Exemple correct
print(somme(2, 3))
def somme(a, b):
return a + b
Exemple incorrect
print(somme(2))
Erreur : il manque un argument
Le nombre d’arguments doit être exactement le même que celui des paramètres
P r. M o h a m m e d E S . S A B R Y
Paramètres avec valeurs par défaut
On peut donner une valeur par défaut à un paramètre.
Si aucun argument n’est fourni, cette valeur est utilisée.
def puissance(x, n=2):
return x**n
Exemple
print(puissance(3)) # n = 2 par défaut
print(puissance(3, 3)) #n=3
Avantage
Rend les fonctions plus flexibles
Pr. Mohammed [Link]
6
Nombre variable d’arguments : *args
Parfois, on ne connaît pas à l’avance le nombre d’arguments.
Python permet d’utiliser *args
*args permet de passer plusieurs valeurs
Ces valeurs sont regroupées dans un tuple
def somme(*nombres):
total = 0
for n in nombres:
total += n
Exemple
return total
print(somme(1, 2))
print(somme(1, 2, 3, 4))
Pr. Mohammed [Link]
Arguments nommés variables : **kwargs
**kwargs permet de passer un nombre variable d’arguments nommés
Les données sont stockées dans un dictionnaire
def afficher_infos(**infos):
for cle, valeur in [Link]():
Exemple print(cle, ":", valeur)
afficher_infos(nom="Ali", age=20, niveau="S2")
Interprétation
infos devient :
{"nom": "Ali", "age": 20, "niveau": "S2"}
P r. M o h a m m e d E S . S A B R Y
7
Différence entre print et return
Il ne faut pas confondre :
print : affiche un résultat à l’écran
return : renvoie une valeur utilisable dans le programme
def f1(x):
print(x ** 2)
def f2(x):
return x ** 2
Exemple
a = f1(3)
b = f2(3)
print(a)
print(b)
P r. M o h a m m e d E S . S A B R Y
Variables locales
Une variable définie à l’intérieur d’une fonction est appelée :
variable locale
Elle existe uniquement dans la fonction
Elle n’est pas accessible à l’extérieur
def calcul():
x=5
return x ** 2
Exemple
print(calcul())
# print(x) → erreur
À retenir
Une variable locale est limitée à la fonction
P r. M o h a m m e d E S . S A B R Y
8
Variables globales
Une variable définie en dehors des fonctions est appelée :
variable globale
Elle est accessible dans tout le programme
x = 10
def afficher():
Exemple
print(x)
afficher()
P r. M o h a m m e d E S . S A B R Y
Mot-clé global
Pour modifier une variable globale dans une fonction, on utilise :
global
x = 10
def modifier():
global x
Exemple
x = 20
modifier()
print(x)
À retenir
Sans global, la modification ne fonctionne pas
À utiliser avec précaution
P r. M o h a m m e d E S . S A B R Y
9
Exercice 1 : Fonctions et calculs
mathématiques
Énoncé:
On considère une fonction mathématique définie par :
𝑓 𝑥 = 𝑥 2 + 2𝑥 + 1
1. Écrire une fonction f(x) qui calcule cette expression
2. Écrire une fonction tableau_f(a, b) qui affiche les valeurs de 𝑓(𝑥) pour tous les entiers
entre a et b
P r. M o h a m m e d E S . S A B R Y
Solution – Exercice 1
def f(x):
return x ** 2 + 2 * x + 1
def tableau_f(a, b):
for x in range(a, b + 1):
print("f(", x, ") =", f(x))
P r. M o h a m m e d E S . S A B R Y
10
Exercice 2 : *args, kwargs et logique
Énoncé:
On souhaite créer des fonctions flexibles pour manipuler des données.
1. Écrire une fonction produit(*nombres) qui calcule le produit de plusieurs nombres
2. Écrire une fonction maximum(*nombres) qui retourne la plus grande valeur
3. Écrire une fonction afficher_etudiant(**infos) qui affiche :
• Nom
• Age
• Moyenne
P r. M o h a m m e d E S . S A B R Y
Solution – Exercice 2
def produit(*nombres):
resultat = 1
for n in nombres:
resultat *= n
return resultat
print(produit(2, 3, 4)) # 24
def maximum(*nombres):
max_val = nombres[0]
for n in nombres:
if n > max_val:
max_val = n
return max_val
print(maximum(3, 7, 2, 9, 1))
P r. M o h a m m e d E S . S A B R Y
11
Solution – Exercice 2
def afficher_etudiant(**infos):
print("Nom :", infos["nom"])
print("Age :", infos["age"])
print("Moyenne :", infos["moyenne"])
afficher_etudiant(nom="Sara", age=19, moyenne=14.5)
P r. M o h a m m e d E S . S A B R Y
12