Les fonctions Python
Une fonction est un bloc de code réutilisable qui réalise une tâche précise.
Elle permet :
- d'éviter les répétitions,
- de rendre le code plus lisible,
- de structurer un programme en sous‑problèmes.
Définir et appeler une fonction
En Python, on définit une fonction avec le mot clé def. Lors de la définition, le nom de la fonction doit toujours être suivi par des parenthèses.
Quand une fonction termine son travail, elle peut renvoyer un résultat.
Ce résultat est appelé valeur de retour et est précédée par le mot clé return.
def nom_de_la_fonction():
# bloc d’instructions
return resultat
Une fois définie, on peut l'utiliser autant de fois que nécessaire, on dit que l'on appelle la fonction, pour cela il suffit d'écrire le nom de la fonction (toujours suivi de parenthéses).
La valeur renvoyée peut alors être utilisée :
print(nom_de_la_fonction())
ou bien stockée dans une variable pour s'en servir plus tard :
variable = nom_de_la_fonction()
...
print(variable)
Aucune valeur de retour
Une fonction peut ne rien renvoyer (pas de return).
Python renvoie alors automatiquement la valeur : None.
def afficher(x):
print(x)
Cette fonction affiche un résultat mais ne revoie rien.
Placement du return
Quand l'instruction return est effectuée l'execution de la fonction s'arrête. Toutes les instructions qui suivent ne seront donc pas exécutée.
def f1():
...
return ...
# bloc d'instructions jamais exécuté
def f2():
...
if ... :
...
return ...
# bloc d'instructions jamais exécuté
else :
...
return ...
# bloc d'instructions jamais exécuté
Paramètres et arguments
Lorsqu’on utilise une fonction, on distingue deux notions importantes : les paramètres et les arguments.
Elles se ressemblent, mais leur rôle est différent.
Les paramètres sont les variables écrites dans la définition de la fonction. Alors que les arguments sont les valeurs envoyées lors de l'appel.
def addition(a, b): # a et b sont des paramètres
return a + b
print(addition(3, 5)) # 3 et 5 sont des arguments
Dans cette fonction, a prendra la valeur 3, et b la valeur 5.
Fonction sans paramètre
Une fonction ne nécessite pas forcement de paramètre, exemple :
def bonjour():
print("Bonjour !")
Paramètres par défaut
On peut donner une valeur par défaut à un paramètre, qui sera utilisée si aucun argument n’est fourni.
def saluer(nom="élève"):
print("Bonjour", nom)
saluer() # Bonjour élève
saluer("Alice") # Bonjour Alice
Portée des variables
- Une variable définie dans une fonction est locale.
- Les variables définies hors d'une fonction sont globales.
Une variable globale est accessible dans une fonction (si elle est définie avant l'appel).
Une variable locale n'est pas accessible en dehors de la définition de la fonction.
x = 10 # variable globale
def f():
y = 5 # variable locale
print(y)
f()
print(x)
Exemple complet
def moyenne(notes):
'''
Renvoie la moyenne d’une liste de notes.
'''
total = sum(notes)
return total / len(notes)
eleve = [15, 12, 18]
print("Moyenne :", moyenne(eleve))
Exercices de découverte
Fonction simple
Écris une fonction salutation() qui affiche Salut !
Appelle-la deux fois.
Fonction avec paramètre
Écris une fonction accueil(prenom) qui affiche Salut <prenom> !
Fonction avec paramètre par défaut
Écris une fonction accueil_defaut(prenom="ami")
Teste avec et sans argument.
Carré d’un nombre
Écris une fonction puissance2(nombre) qui renvoie le carré d’un nombre.
Somme de deux nombres
Écris une fonction somme(a, b) qui renvoie la somme.
Moyenne de trois nombres
Écris une fonction calcul_moyenne(x, y, z) qui renvoie la moyenne.
Affichage multiple
Écris une fonction repeter_mot(mot, n) qui affiche le mot mot n fois, sans return.
Comparaison
Écris une fonction plus_grand(a, b) qui renvoie le plus grand des deux nombres.
Vérifier si pair
Écris une fonction est_pair(n) qui renvoie True si n est pair, sinon False.
Exercices avancés
Exercice 1 : Somme des carrés
Écris une fonction somme_carres(a, b) qui renvoie la somme des carrés des deux nombres a et b.
Exemple : somme_carres(3, 4) → 25.
Exercice 2 : Comparaison chaînes
Écris une fonction plus_long(s1, s2) qui renvoie la chaîne la plus longue entre s1 et s2.
Si elles sont de même longueur, renvoie "Égal".
Exercice 3 : Maximum de trois nombres
Écris une fonction max3(a, b, c) qui renvoie le plus grand des trois nombres sans utiliser de listes.
Exercice 4 : Conversion heures/minutes
Écris une fonction convertir_minutes(heures, minutes) qui renvoie le total en minutes.
Exemple : (2, 30) → 150.
Exercice 5 : Table de multiplication
Écris une fonction table(n) qui affiche la table de multiplication de n jusqu’à 10.
Exercice 6 : Vérifier palindrome
Écris une fonction est_palindrome(s) qui renvoie True si la chaîne s est un palindrome, sinon False.
Exemple : "radar" → True, "python" → False.
Exercice 7 : Compter les chiffres d’un nombre
Écris une fonction nb_chiffres(n) qui renvoie le nombre de chiffres dans un nombre entier positif.
Exemple : nb_chiffres(12345) → 5.