Les bases des fonctions en Python
Les fonctions sont le pilier de tout programme Python. Elles permettent de structurer le code, d'éviter les répétitions et de créer des solutions modulaires et réutilisables.
Que vous soyez débutant ou développeur expérimenté, vous rencontrerez des questions essentielles sur les fonctions Python. Comment passer correctement des arguments à une fonction ? Que sont les variables globales et comment les utiliser ? À quoi servent les décorateurs et comment employer le mot-clé global ? Comment retourner plusieurs valeurs depuis une fonction ?
Définition et syntaxe des fonctions Python
Qu'est-ce qu'une fonction en Python
Une fonction est un bloc de code nommé que l'on peut appeler plusieurs fois. En Python, les fonctions se créent avec le mot-clé def.
Déclaration et appel de fonctions
La déclaration d'une fonction se fait comme suit :
def saluer():
print("Bonjour tout le monde !")
L'appel d'une fonction se fait par son nom :
saluer()
Les fonctions Python peuvent contenir diverses instructions, conditions, boucles et autres constructions du langage. Une bonne définition des fonctions favorise un code lisible et structuré.
Arguments des fonctions en Python
Arguments positionnels
Les arguments positionnels sont passés à la fonction dans l'ordre où ils sont définis :
def saluer(nom):
print(f"Bonjour, {nom} !")
saluer("Marie")
Avec les arguments positionnels, il est important de respecter l'ordre de transmission des paramètres.
Arguments par défaut
Les arguments par défaut permettent de définir des valeurs qui seront utilisées si l'argument n'est pas fourni :
def saluer(nom="Invité"):
print(f"Bonjour, {nom} !")
saluer() # Bonjour, Invité !
L'utilisation d'arguments par défaut améliore la flexibilité des fonctions et réduit le nombre de paramètres obligatoires.
Arguments nommés (mots-clés)
Les arguments nommés sont passés en précisant le nom du paramètre :
def commander(article, quantite):
print(f"Vous avez commandé {quantite} {article}")
commander(article="pizza", quantite=2)
Les arguments nommés rendent le code plus lisible et permettent de passer les paramètres dans n'importe quel ordre.
Nombre variable d'arguments
Python permet de passer un nombre indéfini d'arguments grâce à *args et **kwargs :
def somme(*args):
print(sum(args))
somme(1, 2, 3, 4) # 10
def afficher_infos(**kwargs):
for cle, valeur in kwargs.items():
print(f"{cle}: {valeur}")
afficher_infos(nom="Jean", age=30)
La syntaxe *args accepte un nombre quelconque d'arguments positionnels. La syntaxe **kwargs accepte un nombre quelconque d'arguments nommés.
Retour de valeurs depuis les fonctions Python
Les bases de l'instruction return
Les fonctions peuvent retourner des résultats via l'instruction return. Cela permet d'utiliser le résultat de la fonction dans d'autres parties du programme :
def addition(a, b):
return a + b
resultat = addition(5, 3)
print(resultat) # 8
L'instruction return termine l'exécution de la fonction et redonne la main à l'endroit où elle a été appelée.
Retour de plusieurs valeurs
Python permet de retourner plusieurs valeurs en même temps :
def obtenir_coordonnees():
return 10, 20
x, y = obtenir_coordonnees()
Techniquement, Python retourne un tuple qui peut ensuite être décompressé en variables distinctes. C'est un moyen pratique d'obtenir plusieurs résultats depuis une seule fonction.
Particularités de l'instruction return
Si une fonction ne contient pas d'instruction return, elle retourne automatiquement None. Il est également possible d'utiliser return sans valeur pour terminer prématurément une fonction.