Bases

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.

Fonctions en Python débutant : définir, appeler, paramètres

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

  1. 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é.

    python
    def dire_bonjour():
        print("Bonjour !")
    

    Ici, dire_bonjour est le nom de la fonction. Le mot-clé def sert à 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.

  2. Définir une fonction simple avec def

    Gros plan réaliste d’un écran d’ordinateur affichant dans un éditeur Python la définition d’une fonction simple avec def et un bloc indenté.
    Photo réaliste d’un écran montrant une fonction Python avec un paramètre puis son appel avec un argument.

    La syntaxe minimale d’une fonction en Python est très courte :

    python
    def nom_de_la_fonction():
        instruction
    

    Voici un exemple simple :

    python
    def afficher_message():
        print("Je découvre les fonctions en Python")
    

    Décomposons cette écriture :

    • def indique que vous créez une fonction.
    • afficher_message est 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_nom ou afficher_menu sont plus parlants que test ou truc.

    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 :

    python
    def 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.

  3. Appeler une fonction

    Une fois la fonction définie, vous pouvez l’appeler en écrivant son nom suivi de parenthèses.

    python
    def 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 :

    python
    def 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 :

    python
    def 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.

  4. Passer des paramètres à une fonction

    Photo réaliste d’un écran d’ordinateur montrant une fonction Python qui retourne une valeur, puis le stockage du résultat dans une variable.

    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 :

    python
    def dire_bonjour(nom):
        print("Bonjour", nom)
    

    Ici, nom est un paramètre. C’est une variable locale à la fonction, qui recevra une valeur au moment de l’appel.

    Exemple d’appel :

    python
    dire_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 :

    python
    def carre(nombre):
        print(nombre * nombre)
    
    carre(4)
    carre(7)
    

    La fonction utilise le paramètre nombre pour effectuer l’opération. Lors du premier appel, nombre vaut 4. Lors du second, il vaut 7.

    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):, nom est un paramètre. Dans dire_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.

  5. 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.

    python
    def 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 :

    python
    def 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), prenom reçoit "Lina" et age reçoit 14.

    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, longueur et largeur sont plus parlants que x et y dans une fonction qui calcule une surface.

    python
    def 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.

  6. 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.

    python
    def addition(a, b):
        return a + b
    

    Cette 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 :

    python
    resultat = addition(3, 5)
    print(resultat)
    

    Ici, addition(3, 5) produit la valeur 8, qui est stockée dans la variable resultat.

    La différence entre print() et return est fondamentale :

    • print() affiche une information à l’écran.
    • return renvoie une valeur pour qu’elle soit réutilisée.

    Voici un autre exemple :

    python
    def 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 :

    python
    def 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.

  7. Comprendre ce qui se passe après return

    Quand Python rencontre return dans une fonction, il renvoie la valeur indiquée et quitte immédiatement la fonction.

    python
    def test_retour():
        print("Début")
        return 10
        print("Fin")
    

    Si cette fonction est appelée, "Début" sera affiché, puis la valeur 10 sera renvoyée. La ligne print("Fin") ne sera pas exécutée, car la fonction s’arrête au moment du return.

    Ce comportement est important à retenir. Le mot-clé return ne 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 :

    python
    def test_retour():
        print("Début")
        return 10
    
    resultat = test_retour()
    print(resultat)
    

    Le programme affiche d’abord Début, puis 10.

    Pour un débutant, cette idée aide à éviter une erreur fréquente : placer du code utile après un return en pensant qu’il sera exécuté. En pratique, ce code ne sera pas atteint.

  8. 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 :

    python
    def addition_affiche(a, b):
        print(a + b)
    
    def addition_retourne(a, b):
        return a + b
    

    La première affiche un résultat. La seconde retourne un résultat.

    Essayons de les utiliser :

    python
    addition_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. Avec addition_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 return pour 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 ?

  9. 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.

    python
    def multiplier(a, b):
        return a * b
    
    produit = multiplier(4, 6)
    print(produit)
    

    Ici, la variable produit reç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.

    python
    def 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 :

    python
    def 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.

  10. 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 :

    python
    def f(x, y):
        return x * y
    
    python
    def calculer_aire_rectangle(longueur, largeur):
        return longueur * largeur
    

    Les 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 :

    python
    def calculer_moitie(nombre):
        return nombre / 2
    

    Cette 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.

  11. 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

    python
    def 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

    python
    def 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

    python
    def 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

    python
    def 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.

  12. 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.

    python
    def presentation(prenom, age):
        return "Je m'appelle " + prenom + " et j'ai " + str(age) + " ans"
    

    Étape 2 : appeler la fonction.

    python
    texte = 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 :

    python
    print(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() et return : 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 test ou truc rendent 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.

Commentaires· Aucun commentaire pour l'instant

Soyez le premier à réagir.

Laisser un commentaire