Cours en ligne
Python - Module 5
Les fonctions
Ce module présente les fonctions en Python. Une fonction permet de regrouper un bloc
de code réutilisable afin de rendre un programme plus clair, plus organisé et plus facile
à maintenir.
1. Principe d'une fonction
Une fonction est un bloc de code organisé et réutilisable. Elle permet d'effectuer
une action précise, sans devoir réécrire plusieurs fois les mêmes instructions.
À retenir :
une fonction permet de découper un programme en plusieurs parties plus simples.
2. Définir une fonction
En Python, une fonction se définit avec le mot-clé def.
Le bloc de code de la fonction doit être indenté.
def nom_de_la_fonction(parametre1, parametre2):
# Instructions exécutées lorsque la fonction est appelée
return valeur_a_retourner
def permet de définir la fonction
- le nom de la fonction doit être descriptif
- les paramètres sont placés entre parenthèses
return permet de renvoyer une valeur
3. Fonction sans paramètre et sans retour
Cette fonction n'a besoin d'aucune information extérieure et ne renvoie aucune valeur.
def saluer():
print("Bonjour tout le monde")
saluer()
Bonjour tout le monde
La fonction ne s'exécute que lorsqu'elle est appelée avec saluer().
4. Fonction avec paramètre
Un paramètre permet d'envoyer une information à la fonction.
def saluer_personne(nom):
print(f"Bonjour, {nom} !")
saluer_personne("Jack")
saluer_personne("Emilie")
Bonjour, Jack !
Bonjour, Emilie !
Ici, nom reçoit successivement les valeurs "Jack" puis "Emilie".
5. Fonction avec return
L'instruction return permet de renvoyer une valeur à l'endroit où la fonction
a été appelée.
def addition(a, b):
somme = a + b
return somme
resultat = addition(5, 8)
print(f"La somme est {resultat}")
print(f"La somme suivante est {addition(10, 4)}")
La somme est 13
La somme suivante est 14
Attention :
print() affiche une information, alors que return renvoie une valeur.
6. Retourner plusieurs valeurs
Une fonction Python peut renvoyer plusieurs valeurs avec return.
def operations(x, y):
somme = x + y
produit = x * y
return somme, produit
s, p = operations(4, 3)
print(f"Somme : {s}, Produit : {p}")
Somme : 7, Produit : 12
7. Paramètre par défaut
Un paramètre peut avoir une valeur par défaut. Cette valeur est utilisée si aucun argument
n'est donné lors de l'appel de la fonction.
def saluer_avec_langue(nom, langue="français"):
if langue == "français":
print(f"Bonjour, {nom} !")
elif langue == "anglais":
print(f"Hello, {nom} !")
saluer_avec_langue("Alice")
saluer_avec_langue("John", "anglais")
Bonjour, Alice !
Hello, John !
8. Commentaires de fonctions
Les commentaires de fonctions, appelés aussi docstrings, permettent de documenter
le rôle d'une fonction, ses paramètres et la valeur qu'elle retourne.
def ma_fonction(param1, param2):
"""
Cette fonction fait quelque chose d'incroyable.
Args:
param1 (int): le premier paramètre entier
param2 (str): le deuxième paramètre est une chaîne de caractères
Returns:
bool: True si l'opération a réussi, False sinon
"""
return True
print(ma_fonction.__doc__)
Une docstring est placée juste après la ligne def, à l'intérieur de la fonction.
9. Fonction main()
Il est possible d'organiser le programme principal dans une fonction appelée main().
Cela permet de mieux structurer le programme.
def main():
for i in range(25):
print(f"Le nombre est : {i}")
if i == 8:
return
main()
Le nombre est : 0
Le nombre est : 1
Le nombre est : 2
Le nombre est : 3
Le nombre est : 4
Le nombre est : 5
Le nombre est : 6
Le nombre est : 7
Le nombre est : 8
Ici, la fonction main() s'arrête lorsque i vaut 8,
grâce à l'instruction return.
10. Erreurs fréquentes
Oublier les deux-points
def saluer()
print("Bonjour")
SyntaxError: invalid syntax
Mauvaise indentation
def saluer():
print("Bonjour")
IndentationError: expected an indented block
Oublier d'appeler la fonction
def saluer():
print("Bonjour")
Résultat : rien ne s'affiche tant que saluer() n'est pas appelé.
Confondre print() et return
def addition(a, b):
print(a + b)
resultat = addition(2, 3)
print(resultat)
5
None
La fonction affiche bien 5, mais comme elle ne contient pas de return,
elle renvoie None.
11. Synthèse
Voici les notions essentielles à retenir pour ce module.
Utiliser
- appel de fonction
- arguments
Retour
- return
- None si pas de return
Points clés à retenir :
def permet de définir une fonction.
Une fonction doit être appelée pour s'exécuter.
Les paramètres permettent d'envoyer des informations à la fonction.
return permet de renvoyer une valeur.