Maîtriser les fonctions Python : Syntaxe, types et exemples pratiques
Fonctions Python
Dans cet article, vous apprendrez ce que sont les fonctions, la syntaxe, les composants et les types de fonctions. Vous apprendrez aussi à créer une fonction en Python.
Vidéo : Introduction aux fonctions Python
Qu'est-ce qu'une fonction en Python ?
En Python, une fonction est un groupe d'instructions liées qui effectue une tâche spécifique.
Les fonctions aident à diviser notre programme en morceaux plus petits et modulaires. À mesure que notre programme grandit, les fonctions le rendent plus organisé et gérable.
De plus, elles évitent la répétition et rendent le code réutilisable.
Syntaxe d'une fonction
def function_name(parameters):
"""docstring"""
statement(s)
Ci-dessus est une définition de fonction qui consiste en les composants suivants.
- Mot-clé
defqui marque le début de l'en-tête de la fonction. - Un nom de fonction pour identifier la fonction de manière unique. Le nommage suit les mêmes règles que les identifiants en Python.
- Paramètres (arguments) par lesquels nous passons des valeurs à une fonction. Ils sont optionnels.
- Deux-points (:) pour marquer la fin de l'en-tête de la fonction.
- Chaîne de documentation optionnelle (docstring) pour décrire ce que fait la fonction.
- Une ou plusieurs instructions Python valides qui composent le corps de la fonction. Les instructions doivent avoir le même niveau d'indentation (généralement 4 espaces).
- Instruction
returnoptionnelle pour retourner une valeur depuis la fonction.
Exemple de fonction
def greet(name):
"""Cette fonction salue la personne passée en paramètre"""
print("Hello, " + name + ". Good morning!")
Comment appeler une fonction en Python ?
Une fois que nous avons défini une fonction, nous pouvons l'appeler depuis une autre fonction, un programme, ou même l'invite Python. Pour appeler une fonction, nous tapons simplement le nom de la fonction avec les paramètres appropriés.
>>> greet('Paul')
Hello, Paul. Good morning!
Essayez d'exécuter le code ci-dessus dans le programme Python avec la définition de la fonction pour voir la sortie.
def greet(name):
"""Cette fonction salue la personne passée en paramètre"""
print("Hello, " + name + ". Good morning!")
greet('Paul')
Note : En Python, la définition de fonction doit toujours être présente avant l'appel de fonction. Sinon, nous obtiendrons une erreur. Par exemple,
# appel de fonction
greet('Paul')
# définition de fonction
def greet(name):
"""Cette fonction salue la personne passée en paramètre"""
print("Hello, " + name + ". Good morning!")
# Erreur: name 'greet' is not defined
Docstrings
La première chaîne après l'en-tête de la fonction est appelée docstring et est l'abréviation de documentation string. Elle est brièvement utilisée pour expliquer ce que fait une fonction.
Bien qu'optionnelle, la documentation est une bonne pratique de programmation. À moins que vous ne puissiez vous souvenir de ce que vous avez dîné la semaine dernière, documentez toujours votre code.
Dans l'exemple ci-dessus, nous avons un docstring immédiatement sous l'en-tête de la fonction. Nous utilisons généralement des guillemets triples pour que le docstring puisse s'étendre sur plusieurs lignes. Cette chaîne est disponible pour nous en tant qu'attribut __doc__ de la fonction.
Par exemple :
Essayez d'exécuter ce qui suit dans le shell Python pour voir la sortie.
>>> print(greet.__doc__)
This function greets to the person passed in as a parameter
Pour en savoir plus sur les docstrings en Python, visitez Python Docstrings.
L'instruction return
L'instruction return est utilisée pour quitter une fonction et revenir à l'endroit d'où elle a été appelée.
Syntaxe de return
return [expression_list]
Cette instruction peut contenir une expression qui est évaluée et la valeur est retournée. S'il n'y a pas d'expression dans l'instruction ou si l'instruction return n'est pas présente à l'intérieur d'une fonction, alors la fonction retournera l'objet None.
Par exemple :
>>> print(greet("May"))
Hello, May. Good morning!
None
Ici, None est la valeur retournée car greet() affiche directement le nom et aucune instruction return n'est utilisée.
Exemple de return
def absolute_value(num):
"""Cette fonction retourne la valeur absolue du nombre entré"""
if num >= 0:
return num
else:
return -num
print(absolute_value(2))
print(absolute_value(-4))
Sortie
2 4
Comment fonctionne une fonction en Python ?

Portée et durée de vie des variables
La portée d'une variable est la portion d'un programme où la variable est reconnue. Les paramètres et variables définis à l'intérieur d'une fonction ne sont pas visibles depuis l'extérieur de la fonction. Donc, ils ont une portée locale.
La durée de vie d'une variable est la période pendant laquelle la variable existe en mémoire. La durée de vie des variables à l'intérieur d'une fonction est aussi longue que l'exécution de la fonction.
Elles sont détruites une fois que nous retournons de la fonction. Donc, une fonction ne se souvient pas de la valeur d'une variable de ses appels précédents.
Voici un exemple pour illustrer la portée d'une variable à l'intérieur d'une fonction.
def my_func():
x = 10
print("Valeur à l'intérieur de la fonction :", x)
x = 20
my_func()
print("Valeur à l'extérieur de la fonction :", x)
Sortie
Valeur à l'intérieur de la fonction : 10 Valeur à l'extérieur de la fonction : 20
Ici, nous voyons que la valeur de x est 20 initialement. Même si la fonction my_func() a changé la valeur de x à 10, cela n'a pas affecté la valeur à l'extérieur de la fonction.
C'est parce que la variable x à l'intérieur de la fonction est diffèrent (locale à la fonction) de celle à l'extérieur. Bien qu'elles aient les mêmes noms, ce sont deux variables différentes avec des portées différentes.
D'autre part, les variables en dehors de la fonction sont visibles depuis l'intérieur. Elles ont une portée globale.
Nous pouvons lire ces valeurs depuis l'intérieur de la fonction mais ne pouvons pas les modifier (écrire). Pour modifier la valeur de variables en dehors de la fonction, elles doivent être déclarées comme variables globales en utilisant le mot-clé global.
Types de fonctions
Fondamentalement, nous pouvons diviser les fonctions en deux types :
- Fonctions intégrées (built-in) - Fonctions qui sont intégrées dans Python.
- Fonctions définies par l'utilisateur - Fonctions définies par les utilisateurs eux-mêmes.
Python
- Maîtriser les opérateurs Python : Guide complet
- Maîtriser les arguments de fonctions Python : Positionnels, nommés et paramètres par défaut
- Fonctions lambda en Python : Guide pratique des fonctions anonymes
- Maîtriser les dictionnaires Python : création, manipulation et techniques avancées
- Générateurs Python : itération efficace et cas d'utilisation avancés
- Les fermetures Python expliquées : comment les fonctions imbriquées capturent les variables
- Maîtriser les décorateurs Python : améliorer les fonctions avec des techniques expertes
- 10 fonctions essentielles d'Insight pour optimiser l'impression FDM Stratasys
- Maîtriser la méthode strip() de Python : Guide complet et exemples pratiques