Fonctions en Python débutant : définir, appeler, paramètres
Apprenez les fonctions en Python : définition, appel, paramètres et valeur de retour, avec exemples simples et bonnes pratiques débutant.

Les fonctions font partie des bases les plus utiles en Python. Dès que l’on commence à écrire plusieurs lignes de code, on se rend compte que certaines actions reviennent souvent : afficher un message, faire un calcul, transformer une donnée, vérifier une condition. Plutôt que de recopier les mêmes instructions à plusieurs endroits, on peut les regrouper dans une fonction.
Une fonction est un bloc de code que l’on définit une fois, puis que l’on appelle quand on en a besoin. Cela rend le programme plus lisible, plus simple à corriger et plus facile à faire évoluer. Les fonctions aident aussi à découper un problème en petites étapes compréhensibles, ce qui est très utile pour apprendre à programmer.
Dans ce tutoriel, nous allons voir pas à pas comment définir une fonction, l’appeler, lui passer des paramètres et récupérer une valeur avec return. Les exemples sont volontairement simples et progressifs, afin qu’un débutant puisse comprendre la logique sans se perdre dans des détails inutiles.
À la fin, vous saurez écrire vos propres fonctions et reconnaître les situations où elles rendent votre code plus propre et plus réutilisable.
Prérequis
- Savoir exécuter un script Python simple.
- Connaître les bases : variables, affichage avec
print()et opérations simples. - Comprendre l’importance de l’indentation en Python.
Matériel nécessaire
- Python 3 installé
- Un éditeur de code ou l’interpréteur Python
- Un terminal ou une console Python
Étapes
Comprendre à quoi sert une fonction
Une fonction sert à regrouper des instructions sous un même nom. Au lieu d’écrire plusieurs fois le même bloc de code, on le place dans une fonction puis on l’utilise autant de fois que nécessaire.
Imaginons que vous vouliez afficher plusieurs messages de bienvenue dans un programme. Sans fonction, vous pourriez écrire plusieurs
print()directement. Cela fonctionne, mais dès que le programme grandit, le code devient répétitif.Avec une fonction, vous donnez un nom à une action. Ce nom décrit ce que fait le bloc de code. Cela améliore la lisibilité.
pythondef dire_bonjour(): print("Bonjour !")Ici,
dire_bonjourest le nom de la fonction. Le mot-clédefsert à définir une fonction. Les parenthèses sont obligatoires, même si la fonction ne reçoit encore aucune information. Le caractère:indique le début du bloc, et l’instruction indentée fait partie de la fonction.À ce stade, la fonction est seulement définie. Le code à l’intérieur n’est pas exécuté immédiatement. Pour l’utiliser, il faut l’appeler, ce que nous verrons juste après.
Il est important de comprendre cette idée dès le départ : définir une fonction ne signifie pas exécuter une fonction. On prépare une action, puis on décide plus tard quand la lancer.
Définir une fonction simple avec def


La syntaxe minimale d’une fonction en Python est très courte :
pythondef nom_de_la_fonction(): instructionVoici un exemple simple :
pythondef afficher_message(): print("Je découvre les fonctions en Python")Décomposons cette écriture :
defindique que vous créez une fonction.afficher_messageest le nom choisi.()signifie qu’il n’y a pas de paramètre pour l’instant.:ouvre le bloc de la fonction.- La ligne indentée appartient au corps de la fonction.
Le choix du nom est important. Un bon nom aide à comprendre le rôle de la fonction sans avoir à relire tout son contenu. Par exemple,
calculer_total,demander_nomouafficher_menusont plus parlants quetestoutruc.En Python, on utilise souvent des noms de fonctions en minuscules avec des underscores pour séparer les mots. C’est une façon claire d’écrire, particulièrement utile pour les débutants.
Vous pouvez mettre plusieurs instructions dans une fonction, tant qu’elles restent correctement indentées :
pythondef afficher_presentation(): print("Bonjour") print("Ce programme montre une fonction simple") print("Fin de la présentation")Toutes ces lignes seront exécutées dans l’ordre lorsque la fonction sera appelée.
Une erreur fréquente au début est d’oublier l’indentation, ou de ne pas garder une indentation cohérente. En Python, ce point est essentiel : l’indentation fait partie de la syntaxe.
Appeler une fonction
Une fois la fonction définie, vous pouvez l’appeler en écrivant son nom suivi de parenthèses.
pythondef afficher_message(): print("Je découvre les fonctions en Python") afficher_message()Dans cet exemple, la première partie définit la fonction, et la dernière ligne l’exécute. Le programme affiche alors le message prévu.
On peut appeler la même fonction plusieurs fois :
pythondef dire_bonjour(): print("Bonjour !") dire_bonjour() dire_bonjour() dire_bonjour()Le résultat est l’affichage de trois lignes identiques. C’est un bon exemple de réutilisation : vous écrivez le code une seule fois, puis vous l’utilisez autant de fois que nécessaire.
Cette idée devient très utile quand une action est plus longue qu’un simple
print(). Si une série d’instructions doit être répétée, une fonction est souvent une bonne solution.Il faut aussi respecter l’ordre du programme. En règle générale, on définit la fonction avant de l’appeler dans le script :
pythondef saluer(): print("Salut") saluer()Pour un débutant, cette organisation est la plus simple à lire : d’abord on prépare les outils, ensuite on les utilise.
Passer des paramètres à une fonction

Une fonction devient beaucoup plus intéressante lorsqu’elle peut recevoir des informations. Ces informations s’appellent des paramètres.
Au lieu d’écrire une fonction qui affiche toujours le même message, on peut lui transmettre un nom :
pythondef dire_bonjour(nom): print("Bonjour", nom)Ici,
nomest un paramètre. C’est une variable locale à la fonction, qui recevra une valeur au moment de l’appel.Exemple d’appel :
pythondire_bonjour("Alice") dire_bonjour("Karim")La même fonction peut ainsi produire des résultats différents selon la valeur fournie. C’est ce qui rend les fonctions flexibles.
On peut voir cela comme un moule : la structure reste la même, mais les données changent. La fonction définit le comportement, et les paramètres permettent de personnaliser ce comportement.
Voici un autre exemple simple avec un calcul :
pythondef carre(nombre): print(nombre * nombre) carre(4) carre(7)La fonction utilise le paramètre
nombrepour effectuer l’opération. Lors du premier appel,nombrevaut4. Lors du second, il vaut7.Il est important de distinguer deux notions :
- Le paramètre est le nom écrit dans la définition de la fonction.
- L’argument est la valeur transmise lors de l’appel.
Dans
def dire_bonjour(nom):,nomest un paramètre. Dansdire_bonjour("Alice"),"Alice"est l’argument.Même si beaucoup de débutants utilisent ces mots de manière interchangeable au départ, comprendre cette différence aide à mieux lire les explications et la documentation.
Utiliser plusieurs paramètres
Une fonction peut recevoir plusieurs paramètres, séparés par des virgules. Cela permet de travailler avec plusieurs informations en même temps.
pythondef addition(a, b): print(a + b) addition(3, 5) addition(10, 2)Dans cet exemple, la fonction reçoit deux valeurs et affiche leur somme.
On peut aussi créer une phrase plus complète :
pythondef presenter(prenom, age): print("Je m'appelle", prenom, "et j'ai", age, "ans") presenter("Lina", 14) presenter("Noah", 16)L’ordre des arguments compte. Si vous inversez les valeurs, le résultat change. Avec
presenter("Lina", 14),prenomreçoit"Lina"etagereçoit14.Si une fonction attend deux paramètres, il faut en fournir deux lors de l’appel. Sinon, Python signale une erreur, car il manque une information nécessaire au fonctionnement de la fonction.
Essayez de choisir des noms de paramètres simples et explicites. Une fonction est plus facile à comprendre si ses paramètres indiquent clairement leur rôle. Par exemple,
longueuretlargeursont plus parlants quexetydans une fonction qui calcule une surface.pythondef surface_rectangle(longueur, largeur): print(longueur * largeur) surface_rectangle(8, 3)Cette fonction reste très accessible pour un débutant tout en montrant l’utilité concrète des paramètres.
Retourner une valeur avec return
Jusqu’ici, plusieurs exemples utilisent
print()pour afficher un résultat. C’est utile pour voir ce que fait la fonction, mais cela ne suffit pas toujours. Souvent, on veut récupérer le résultat pour le stocker dans une variable, faire un autre calcul, ou l’utiliser ailleurs dans le programme.C’est le rôle de
return.pythondef addition(a, b): return a + bCette fois, la fonction ne se contente pas d’afficher la somme : elle la retourne. Cela signifie qu’elle envoie le résultat à l’endroit où la fonction a été appelée.
Exemple :
pythonresultat = addition(3, 5) print(resultat)Ici,
addition(3, 5)produit la valeur8, qui est stockée dans la variableresultat.La différence entre
print()etreturnest fondamentale :print()affiche une information à l’écran.returnrenvoie une valeur pour qu’elle soit réutilisée.
Voici un autre exemple :
pythondef carre(nombre): return nombre * nombre valeur = carre(6) print(valeur) print(carre(9))Comme la fonction retourne une valeur, on peut l’utiliser directement dans un
print(), dans une variable, ou dans une autre expression.Par exemple :
pythondef addition(a, b): return a + b total = addition(2, 3) + addition(4, 1) print(total)Cette façon de travailler est beaucoup plus puissante que le simple affichage, car le résultat devient une donnée que le programme peut manipuler.
Comprendre ce qui se passe après return
Quand Python rencontre
returndans une fonction, il renvoie la valeur indiquée et quitte immédiatement la fonction.pythondef test_retour(): print("Début") return 10 print("Fin")Si cette fonction est appelée,
"Début"sera affiché, puis la valeur10sera renvoyée. La ligneprint("Fin")ne sera pas exécutée, car la fonction s’arrête au moment dureturn.Ce comportement est important à retenir. Le mot-clé
returnne sert pas seulement à fournir un résultat : il marque aussi la fin de l’exécution de la fonction à cet endroit.On peut le vérifier ainsi :
pythondef test_retour(): print("Début") return 10 resultat = test_retour() print(resultat)Le programme affiche d’abord
Début, puis10.Pour un débutant, cette idée aide à éviter une erreur fréquente : placer du code utile après un
returnen pensant qu’il sera exécuté. En pratique, ce code ne sera pas atteint.Différence entre afficher et retourner
Cette distinction mérite une étape entière, car elle provoque beaucoup de confusion au début.
Regardez ces deux fonctions :
pythondef addition_affiche(a, b): print(a + b) def addition_retourne(a, b): return a + bLa première affiche un résultat. La seconde retourne un résultat.
Essayons de les utiliser :
pythonaddition_affiche(2, 3) resultat = addition_retourne(2, 3) print(resultat)Dans les deux cas, on peut voir le nombre
5à l’écran. Pourtant, le comportement n’est pas le même.Avec
addition_affiche, la fonction montre simplement le résultat. Avecaddition_retourne, elle fournit une valeur au programme, qui peut ensuite la stocker, la modifier ou la combiner avec autre chose.Si vous essayez de réutiliser directement une fonction qui ne fait qu’afficher, vous serez vite limité. Pour les calculs et les traitements de données, il est souvent préférable de retourner une valeur.
On peut résumer ainsi :
- Utilisez
print()pour observer, expliquer ou déboguer. - Utilisez
returnpour produire un résultat exploitable.
Chez les débutants, une bonne habitude consiste à se demander : Est-ce que je veux juste voir le résultat, ou est-ce que je veux le réutiliser ?
- Utilisez
Stocker le résultat d’une fonction dans une variable
Lorsqu’une fonction retourne une valeur, vous pouvez la stocker dans une variable comme n’importe quel autre résultat.
pythondef multiplier(a, b): return a * b produit = multiplier(4, 6) print(produit)Ici, la variable
produitreçoit la valeur retournée par la fonction.Cette possibilité est essentielle, car elle permet de construire des programmes en plusieurs étapes. Une fonction produit une valeur, puis cette valeur sert ailleurs.
pythondef addition(a, b): return a + b somme1 = addition(1, 2) somme2 = addition(3, 4) total = somme1 + somme2 print(total)Vous pouvez aussi réutiliser une fonction dans une expression plus grande :
pythondef carre(nombre): return nombre * nombre resultat = carre(3) + carre(5) print(resultat)Ce type d’écriture montre bien l’intérêt des fonctions retournant une valeur : elles deviennent des briques que l’on peut assembler.
Plus tard, lorsque vous écrirez des programmes plus longs, cette approche vous aidera à séparer les responsabilités : une fonction lit une donnée, une autre la transforme, une autre encore affiche le résultat final.
Créer des fonctions plus lisibles et réutilisables
Écrire une fonction qui fonctionne est une bonne chose. Écrire une fonction claire et facile à réutiliser est encore mieux.
Voici quelques principes simples pour débuter :
- Donner un nom explicite à la fonction.
- Choisir des paramètres compréhensibles.
- Éviter de mélanger trop d’actions dans la même fonction.
- Retourner une valeur quand le résultat doit être réutilisé.
Comparez ces deux exemples :
pythondef f(x, y): return x * ypythondef calculer_aire_rectangle(longueur, largeur): return longueur * largeurLes deux fonctions peuvent faire une multiplication, mais la seconde est bien plus claire pour quelqu’un qui lit le code, y compris vous-même plus tard.
Essayez aussi de garder chaque fonction centrée sur une tâche précise. Par exemple, une fonction qui calcule une moyenne n’a pas besoin d’afficher un menu, de demander plusieurs saisies et d’écrire un long texte. Plus une fonction a un rôle clair, plus elle est facile à tester et à réutiliser.
Exemple simple et propre :
pythondef calculer_moitie(nombre): return nombre / 2Cette fonction fait une seule chose, et son comportement est facile à comprendre.
Chez un débutant, cette manière de penser est importante : au lieu de créer un grand bloc de code continu, on apprend à découper le programme en petites unités logiques.
Exemples pratiques pour débuter
Passons à quelques petits exemples concrets qui combinent définition, appel, paramètres et valeur de retour.
Exemple 1 : saluer une personne
pythondef saluer(prenom): print("Bonjour", prenom) saluer("Emma") saluer("Yanis")Cette fonction reçoit un prénom et affiche un message personnalisé.
Exemple 2 : calculer une somme
pythondef addition(a, b): return a + b resultat = addition(8, 12) print(resultat)La fonction retourne le résultat, ce qui permet de le stocker dans une variable.
Exemple 3 : calculer un prix total
pythondef calculer_total(prix, quantite): return prix * quantite total = calculer_total(5, 3) print(total)Ici, la fonction prend deux paramètres et retourne le produit.
Exemple 4 : enchaîner plusieurs fonctions
pythondef addition(a, b): return a + b def carre(nombre): return nombre * nombre somme = addition(2, 4) resultat = carre(somme) print(resultat)On calcule d’abord une somme, puis on utilise cette somme comme argument dans une autre fonction. Cet exemple montre comment les fonctions peuvent collaborer.
Vous voyez ici une progression logique importante : on ne crée pas des fonctions seulement pour réduire la répétition, mais aussi pour structurer le programme en étapes simples.
Petit exercice guidé
Pour vérifier que les notions sont comprises, voici un exercice très simple.
Objectif : créer une fonction qui reçoit un prénom et un âge, puis retourne une phrase.
Étape 1 : écrire la fonction.
pythondef presentation(prenom, age): return "Je m'appelle " + prenom + " et j'ai " + str(age) + " ans"Étape 2 : appeler la fonction.
pythontexte = presentation("Sara", 15) print(texte)Cette fonction montre plusieurs points importants :
- Elle reçoit plusieurs paramètres.
- Elle construit un résultat à partir de ces paramètres.
- Elle retourne une valeur au lieu de l’afficher directement.
Vous pouvez ensuite modifier les arguments pour tester d’autres cas :
pythonprint(presentation("Léo", 13)) print(presentation("Inès", 17))Si vous débutez, prenez l’habitude de faire ce genre de petits exercices en variant les valeurs. Cela aide à comprendre que la fonction garde la même structure, tandis que les données changent à chaque appel.
Vous pouvez aussi essayer une variante : écrire une fonction qui reçoit deux nombres et retourne le plus grand des deux. Même sans aller plus loin, ce type de pratique renforce la maîtrise des paramètres et de
return.
Erreurs fréquentes & dépannage
Erreurs fréquentes
- Confondre définition et appel : écrire une fonction ne l’exécute pas. Il faut l’appeler avec son nom suivi de parenthèses.
- Oublier l’indentation : le corps de la fonction doit être indenté après
def. - Oublier les parenthèses : une fonction s’appelle avec
(), même si elle n’a pas de paramètre. - Confondre
print()etreturn: afficher un résultat n’est pas la même chose que le retourner. - Donner le mauvais nombre d’arguments : si une fonction attend deux paramètres, il faut fournir deux valeurs à l’appel.
- Placer du code utile après
return: ce code ne sera pas exécuté. - Choisir des noms vagues : des noms comme
testoutrucrendent le code plus difficile à comprendre.
Astuces & pour aller plus loin
Astuces pour bien progresser
- Commencez par des fonctions très courtes qui font une seule chose.
- Utilisez des noms clairs pour les fonctions et les paramètres.
- Testez vos fonctions avec plusieurs valeurs pour vérifier qu’elles se comportent comme prévu.
- Demandez-vous toujours si vous devez afficher un résultat ou le retourner.
- Réécrivez un morceau de code répétitif sous forme de fonction : c’est un excellent exercice.
- Relisez votre fonction comme une phrase : son nom et ses paramètres doivent suggérer son rôle.
Questions fréquentes
À quoi sert une fonction en Python ?
Une fonction sert à regrouper des instructions réutilisables sous un nom. Elle permet d’éviter les répétitions et rend le code plus lisible.
Quelle est la différence entre un paramètre et un argument ?
Le paramètre est le nom utilisé dans la définition de la fonction. L’argument est la valeur transmise lors de l’appel.
Pourquoi utiliser return au lieu de print() ?
print() affiche un résultat à l’écran, tandis que return renvoie une valeur pour qu’elle soit réutilisée dans le programme.
Une fonction peut-elle avoir plusieurs paramètres ?
Oui. Il suffit de les séparer par des virgules dans la définition, puis de fournir les valeurs correspondantes lors de l’appel.
Que se passe-t-il après un return dans une fonction ?
La fonction s’arrête immédiatement. Les instructions placées après ce return ne sont pas exécutées.
Dois-je toujours retourner une valeur ?
Non. Certaines fonctions servent seulement à effectuer une action, par exemple afficher un message. Mais si le résultat doit être réutilisé, return est souvent préférable.
Conclusion
Les fonctions sont un outil central en Python, même pour un tout premier apprentissage. Elles permettent de donner un nom à une action, d’éviter les répétitions et de construire un programme de manière plus claire.
Dans ce tutoriel, vous avez vu comment définir une fonction avec def, l’appeler, lui transmettre des paramètres et récupérer un résultat avec return. Vous avez aussi appris à distinguer l’affichage d’un résultat et le renvoi d’une valeur, ce qui est une étape essentielle pour progresser.
La meilleure manière d’assimiler ces notions est de pratiquer sur de petits exemples. Créez des fonctions simples, testez-les avec plusieurs arguments, puis essayez d’enchaîner plusieurs fonctions dans un même script. Avec cette habitude, vous développerez rapidement des bases solides en programmation Python.