Keep your place in this quest

Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.

À présent, vous avez probablement remarqué que certains schémas de code se répètent.
Et si vous pouviez regrouper ce code dans un seul paquet, lui donner un nom, et l'exécuter chaque fois que vous le souhaitez sans avoir à le réécrire ?

C’est exactement à cela que servent les fonctions.

Vous pouvez voir une fonction comme un mini-programme vivant à l'intérieur de votre programme.
Elle a un nom, peut recevoir des entrées, effectue un travail, et (optionnellement) renvoie quelque chose.


Pourquoi utiliser des fonctions ?

Les fonctions sont parmi les outils les plus puissants en programmation car elles :

  • Évitent la répétition — Écrivez une fois, utilisez partout.
  • Organisent votre code — Découpez de gros problèmes en morceaux plus petits et gérables.
  • Facilitent les tests — Vous pouvez vérifier une partie de la logique sans exécuter tout votre programme.

ASTUCE : Les fonctions sont comme des appareils de cuisine. Vous pourriez pétrir la pâte à la main à chaque fois, mais un mixeur le fait plus vite, plus uniformément, et vous pouvez le réutiliser quand vous voulez.

Définir votre première fonction

En Python, vous créez (ou définissez) une fonction avec le mot-clé def, suivi du nom de la fonction, des parenthèses pour les entrées éventuelles (appelées paramètres), puis un deux-points.
Ensuite, vous indenterez le code qui appartient à la fonction.

Exemple :

def square(number):
    return number * number

print(square(4))  # 16

Voici ce qui se passe :

  1. Nous définissons square, qui prend un paramètre : number.
  2. À l'intérieur, nous multiplions number par lui-même et renvoyons le résultat.
  3. Nous appelons square(4), ce qui remplace number par 4.
  4. La fonction retourne 16, que print() affiche.

IMPORTANT ! : L'instruction return renvoie une valeur à l’endroit où la fonction a été appelée. Si vous l'oubliez, la fonction retournera None. Vous apprendrez plus tard que certaines fonctions ne renvoient rien, elles effectuent juste quelques actions et c’est tout.

Fonctions avec plusieurs paramètres

Les fonctions peuvent prendre autant d'entrées que nécessaire. Ces valeurs sont placées entre parenthèses, séparées par des virgules.

Exemple :

def add(num1, num2):
    return num1 + num2

result = add(5, 6)
print(result)  # 11

Ici, num1 devient 5 et num2 devient 6 quand nous appelons la fonction. À l’intérieur, ils sont additionnés et la somme est renvoyée.

Note : Les noms num1 et num2 existent uniquement dans la fonction — ce sont des variables locales.

Valeurs par défaut des paramètres

Parfois, vous voulez qu’un paramètre ait une valeur par défaut afin que l'utilisateur n'ait pas toujours à la fournir.

Exemple :

def greet(name, greeting="Hello"):
    print(f"{greeting}, {name}!")

greet("John")                   # Utilise le salut par défaut
greet("Maria", "Good evening")  # Utilise un salut personnalisé

Si vous ne passez pas de salut, il prend la valeur par défaut "Hello". Sinon, il est remplacé par celui fourni.

ASTUCE : Les valeurs par défaut doivent toujours venir après tous les paramètres requis dans la définition de la fonction.

Pour conclure

Les fonctions sont votre boîte à outils pour construire des programmes plus grands, plus propres et plus intelligents. Vous pouvez les appeler autant de fois que vous le souhaitez, passer des entrées différentes, et attendre qu’elles fassent leur travail de manière cohérente.

Dans la prochaine leçon, nous explorerons la récursivité — un type spécial de fonction qui s'appelle elle-même. Cela peut sembler étrange, mais c’est la clé pour des solutions élégantes à certains problèmes.