En Python 3, les fonctions sont définies à l’aide du mot-clé def
, suivi du nom de la fonction, puis des parenthèses contenant éventuellement des paramètres, et enfin, un bloc d’instructions indenté qui constitue le corps de la fonction. Voici un exemple simple de définition d’une fonction en Python :
pythondef ma_fonction(parametre1, parametre2):
# Corps de la fonction
resultat = parametre1 + parametre2
return resultat
Dans cet exemple, ma_fonction
est le nom de la fonction, et elle prend deux paramètres parametre1
et parametre2
. À l’intérieur de la fonction, ces paramètres peuvent être utilisés pour effectuer des calculs ou d’autres opérations. La valeur de retour de la fonction est définie à l’aide du mot-clé return
.

La solution définitive pour raccourcir les liens et gérer vos campagnes digitales de manière professionnelle.
• Raccourcissement instantané et rapide des liens
• Pages de profil interactives
• Codes QR professionnels
• Analyses détaillées de vos performances digitales
• Et bien plus de fonctionnalités gratuites !
Pour utiliser cette fonction, vous pouvez l’appeler dans votre code principal comme ceci :
pythonresultat = ma_fonction(5, 3)
print(resultat) # Cela affichera 8
Lorsque vous appelez ma_fonction
avec les arguments 5
et 3
, elle retournera la somme de ces deux nombres, qui sera alors stockée dans la variable resultat
.
En Python, les fonctions peuvent également avoir des paramètres facultatifs avec des valeurs par défaut. Cela signifie que ces paramètres peuvent être omis lors de l’appel de la fonction, et ils prendront alors les valeurs par défaut spécifiées dans la définition de la fonction. Voici un exemple :
pythondef fonction_param_facultatif(parametre1, parametre2=10):
resultat = parametre1 * parametre2
return resultat
Dans cette fonction, parametre2
a une valeur par défaut de 10
. Cela signifie que si vous appelez la fonction sans spécifier parametre2
, elle sera automatiquement définie sur 10
. Par exemple :
pythonresultat = fonction_param_facultatif(5)
print(resultat) # Cela affichera 50
Vous pouvez également définir des fonctions qui prennent un nombre variable d’arguments en utilisant *args
et **kwargs
. *args
est utilisé pour passer un nombre variable d’arguments positionnels, tandis que **kwargs
est utilisé pour passer un nombre variable d’arguments nommés (clés-valeurs). Voici un exemple :
pythondef fonction_args_kwargs(arg1, *args, **kwargs):
print("Premier argument :", arg1)
for arg in args:
print("Argument positionnel supplémentaire :", arg)
for cle, valeur in kwargs.items():
print(f"Argument nommé {cle} avec valeur {valeur}")
fonction_args_kwargs("valeur", "arg1", "arg2", nom1="valeur1", nom2="valeur2")
Cette fonction peut être appelée avec un premier argument obligatoire (arg1
), suivi de zéro ou plusieurs arguments positionnels (args
), et zéro ou plusieurs arguments nommés (kwargs
). Lors de l’appel de cette fonction avec des valeurs, elle affichera chaque argument transmis.
C’est ainsi que les fonctions sont définies et utilisées en Python 3, offrant ainsi une grande flexibilité pour la création de logique modulaire et réutilisable dans vos programmes.
Plus de connaissances
En plus des bases de la définition des fonctions en Python 3, il existe plusieurs concepts avancés et bonnes pratiques qui peuvent être utiles pour écrire des fonctions efficaces et lisibles. Voici quelques-uns de ces éléments :
Arguments de fonction
En Python, les arguments de fonction peuvent être de différents types :
- Arguments positionnels : Ce sont des arguments qui sont passés dans l’ordre dans lequel ils sont définis dans la signature de la fonction. Par exemple :
pythondef fonction_positionnelle(a, b, c):
print(a, b, c)
fonction_positionnelle(1, 2, 3) # Affichera : 1 2 3
- Arguments nommés : Aussi appelés arguments par mot-clé, ils sont associés à des paramètres spécifiques de la fonction. Cela permet de spécifier les valeurs des paramètres dans n’importe quel ordre. Par exemple :
pythondef fonction_nommee(a, b, c):
print(a, b, c)
fonction_nommee(c=3, a=1, b=2) # Affichera : 1 2 3
- Arguments par défaut : Vous pouvez attribuer des valeurs par défaut aux paramètres d’une fonction. Si aucun argument n’est passé pour ces paramètres, les valeurs par défaut seront utilisées. Par exemple :
pythondef fonction_defaut(a, b=10):
print(a, b)
fonction_defaut(5) # Affichera : 5 10
- Arguments arbitraires : Vous pouvez utiliser
*args
pour accepter un nombre arbitraire d’arguments positionnels et**kwargs
pour accepter un nombre arbitraire d’arguments nommés. Par exemple :
pythondef fonction_arbitraire(a, *args, **kwargs):
print(a)
for arg in args:
print(arg)
for cle, valeur in kwargs.items():
print(f"{cle} = {valeur}")
fonction_arbitraire(1, 2, 3, nom="John", age=30)
Fonctions anonymes (lambda)
En Python, les fonctions anonymes, également appelées fonctions lambda, sont des fonctions sans nom définies à l’aide du mot-clé lambda
. Elles sont souvent utilisées lorsqu’une fonction simple est nécessaire pour une opération ponctuelle. Par exemple :
pythoncarre = lambda x: x**2
print(carre(5)) # Affichera : 25
Les fonctions lambda sont souvent utilisées en combinaison avec les fonctions intégrées telles que filter()
, map()
et reduce()
pour effectuer des opérations sur des collections de données.
Documentation des fonctions
Il est recommandé de documenter vos fonctions en fournissant des docstrings, qui sont des chaînes de documentation incluses juste après la définition de la fonction. Cela aide les autres développeurs (et vous-même) à comprendre comment utiliser la fonction. Par exemple :
pythondef fonction_documentee(parametre):
"""
Cette fonction effectue une opération sur le paramètre donné.
Args:
parametre: La valeur sur laquelle effectuer l'opération.
Returns:
Le résultat de l'opération.
"""
# Corps de la fonction
resultat = parametre ** 2
return resultat
Décomposition des fonctions
Il est souvent judicieux de décomposer les fonctions en sous-fonctions plus petites et spécialisées. Cela favorise la réutilisabilité du code et rend chaque fonction plus lisible et plus facile à comprendre.
Tests unitaires
Écrire des tests unitaires pour vos fonctions est une pratique recommandée pour garantir leur bon fonctionnement dans différentes situations. Les tests unitaires peuvent être réalisés à l’aide de frameworks tels que unittest
ou pytest
.
En résumé, la définition des fonctions en Python ne se limite pas à une simple syntaxe de base, mais implique également la compréhension de concepts avancés tels que les arguments de fonction, les fonctions anonymes, la documentation des fonctions, la décomposition des fonctions et les tests unitaires. En maîtrisant ces concepts, vous pouvez écrire un code Python plus efficace, modulaire et facilement maintenable.