1.4 · Fonctions, arguments & portée

Niveau 1 · Bases du langage

1.4Fonctions, arguments & portée

Objectif : définir des fonctions, gérer *args/**kwargs et la portée des variables.
Temps estimé : 14 min

Une fonction est un bloc de code nommé et réutilisable : on l'écrit une fois, on l'appelle autant qu'on veut. C'est le pilier d'un code organisé qui applique le principe DRY (« Don't Repeat Yourself » — ne vous répétez pas). Vous apprenez à définir des fonctions avec def, à leur passer des arguments et à récupérer un résultat avec return.

Vous découvrez aussi la portée des variables (locale vs globale) et la flexibilité des arguments : valeurs par défaut, *args et **kwargs. Ces notions structurent tous vos programmes futurs et préparent la programmation orientée objet du niveau 2.

Vocabulaire de la section

Fonction / def
Bloc de code nommé et réutilisable, défini avec def nom(paramètres):. Appelé par nom(arguments).
Paramètre / argument
Le paramètre est la variable déclarée dans la définition ; l'argument est la valeur réelle passée à l'appel.
return
Renvoie une valeur en sortie de la fonction et met fin à son exécution. Sans return, la fonction renvoie None.
Portée (scope)
Zone de visibilité d'une variable. Une variable créée dans une fonction est locale : elle n'existe pas à l'extérieur.
*args / **kwargs
Permettent de recevoir un nombre variable d'arguments : *args (liste de valeurs), **kwargs (dictionnaire de paires nom=valeur).
Vérifiez votre compréhension

Quand privilégier une boucle for plutôt que while ?

Fonctions, arguments & portée
Vidéo hébergée sur YouTube — ouvrir dans un nouvel onglet ↗
Tutos fonctions Python & *args/**kwargs (recherche FR)
Cliquer pour voir les résultats à jour ↗

En pratique — Définir et appeler des fonctions

  1. Écrivez une fonction saluer(nom) qui renvoie (return) « Bonjour, {nom} ! ». Appelez-la avec différents noms et affichez le résultat.
  2. Ajoutez un paramètre par défaut : saluer(nom, politesse="Bonjour"). Appelez-la avec et sans le second argument.
  3. Écrivez une fonction moyenne(*notes) qui accepte un nombre variable de notes et renvoie leur moyenne. Testez avec 2, puis 5 notes.
  4. Illustrez la portée : créez une variable dans une fonction et tentez d'y accéder à l'extérieur (NameError). Concluez sur local vs global.
Vous créez des fonctions réutilisables avec arguments, valeurs par défaut et return, et vous comprenez la portée locale des variables.

Points clés à retenir

  • Une fonction (def) regroupe un code réutilisable : principe DRY.
  • return renvoie un résultat ; sans lui, la fonction renvoie None.
  • Arguments par défaut, *args et **kwargs offrent de la flexibilité.
  • Une variable définie dans une fonction est locale : invisible à l'extérieur.

Questions fréquentes

Quelle différence entre print() et return dans une fonction ?

print() affiche à l'écran mais ne transmet rien au reste du programme. return renvoie une valeur exploitable (stockable, calculable). Une fonction qui « print » sans « return » ne sert qu'à afficher ; pour réutiliser le résultat, il faut return.

À quoi servent *args et **kwargs concrètement ?

Ils rendent une fonction flexible sur le nombre d'arguments. *args collecte des valeurs positionnelles en tuple (utile pour une somme d'un nombre inconnu de valeurs) ; **kwargs collecte des paires clé=valeur en dictionnaire (utile pour des options nommées).

Autres ressources