En tant que programmeur, vous serez souvent amené à effectuer une action ou une tâche de manière répétée. Cela peut s’avérer fastidieux et prendre du temps, en particulier lorsque vous travaillez avec une base de code importante ou complexe. L’automatisation de ces tâches à l’aide de fonctions est une approche plus efficace. Les fonctions vous permettent d’écrire la logique du code une seule fois et de l’utiliser n’importe où dans votre programme.
Qu’est-ce qu’une fonction Python ?
En Python, une fonction est un bloc de code utilisé pour effectuer une tâche spécifique. Vous ne devez écrire une fonction qu’une seule fois, mais vous pouvez l’utiliser plusieurs fois dans votre code. Une fonction peut recevoir des arguments en entrée et renvoyer des valeurs en sortie. Ce programme simple montre une fonction qui calcule la somme de trois nombres :
# Python function to calculate the sum of three numbers
def calculate_sum(a, b, c):
return a+b+c
print(calculate_sum(1,2,3)) # returns 6
print(calculate_sum(1000, 300,44)) # returns 1344
print(calculate_sum(12, 4,78)) # returns 94
Dans le programme ci-dessus, la fonction renvoie la somme de trois arguments. Lorsque la fonction est appelée plusieurs fois, elle renvoie un résultat différent dans chaque cas. Une application utile pour cette fonction sera une application de calculatrice.
Définir une fonction en Python
Python dispose de nombreuses fonctions intégrées que les développeurs peuvent utiliser. Cependant, ces fonctions intégrées ne sont pas toujours suffisantes pour répondre aux exigences de la plupart des projets. Pour répondre à des demandes personnalisées, vous devez définir vos propres fonctions. La définition de fonctions personnalisées est une pratique courante en programmation.
En Python, vous pouvez définir une fonction personnalisée en utilisant la fonction def suivi du nom de votre fonction avec des parenthèses devant. Voici un exemple :
def function_name()
Vous devez tenir compte de ces règles lorsque vous attribuez un nom de fonction en Python :
- Les noms de fonctions doivent être en minuscules.
- Les noms de fonctions doivent être descriptifs.
- Utiliser des traits de soulignement pour séparer les mots d’un nom de fonction.
Après avoir défini la fonction, vous devez écrire la logique permettant d’effectuer la tâche souhaitée. Par exemple, cette fonction calcule la surface d’un triangle :
# Python function to calculate the area of a triangle
def calculate_triangle_area(base, height):
area = (base * height)/2
return area
print(calculate_triangle_area(12, 3))
La fonction ci-dessus définit deux paramètres : base et hauteur, divise leur produit par deux et renvoie le résultat en sortie. Vous pouvez écrire la logique que vous voulez que votre fonction exécute.
Comprendre les arguments des fonctions
Dans les exemples précédents, les fonctions ont pris des arguments pour effectuer des actions. Dans ces exemples, les arguments sont connus sous le nom d’arguments requis ou d’arguments positionnels. En Python, vos arguments peuvent être l’un ou l’autre des éléments suivants :
- Arguments de position
- Arguments par mot-clé
Arguments de position
Les arguments positionnels doivent être transmis dans le bon ordre de définition. Par exemple, si vous définissez une fonction avec les paramètres a, bet c, vous devez transmettre les valeurs de ces paramètres en conséquence lorsque vous les appelez. Examinons un exemple précédent :
# Python function to calculate the sum of three numbers
def calculate_sum(a, b, c):
return a+b+c
print(calculate_sum(1,2,3)) # returns 6
print(calculate_sum(1000, 300,44)) # returns 1344
print(calculate_sum(12, 4,78)) # returns 94
Dans le programme ci-dessus, la fonction calcul_sum() prend trois arguments chaque fois qu’elle est appelée. Chaque argument représente un paramètre correspondant. Dans le premier appel de la fonction, les nombres 1, 2, et 3 représenter a, b, et c en conséquence.
Un paramètre est déclaré dans la définition d’une fonction, tandis qu’un argument est la valeur transmise lorsque vous appelez la fonction Cette valeur est une représentation du paramètre correspondant.
Les arguments positionnels sont obligatoires. Si vous ne les ajoutez pas, vous obtiendrez un TypeError. L’exemple suivant illustre cette situation :
def calculate_sum(a, b, c):
return a+b+c
print(calculate_sum(1,2)) # raises TypeError
Lorsque vous exécutez le programme ci-dessus sur votre machine, vous obtenez une erreur similaire à celle de l’image ci-dessous :
Arguments de mots-clés
Les arguments de type mot-clé ne doivent pas nécessairement être transmis à chaque fois que vous appelez une fonction. Il s’agit d’arguments optionnels qui n’ont pas besoin de suivre un ordre spécifique. Python nous permet d’utiliser *args et **kwargs pour spécifier des arguments de type mot-clé.
En dehors de l’utilisation de *args et **kwargsIl est également possible de spécifier des valeurs par défaut pour vos arguments. En procédant ainsi, vous n’obtiendrez pas d’erreur si vous oubliez d’ajouter une valeur lors de l’appel de la fonction. Cet exemple en est une illustration :
def calculate_sum(a, b, c=3):
return a+b+c
print(calculate_sum(1,2)) # returns 6
Dans le programme ci-dessus, lorsque calcul_sum() est appelée, il n’y a pas d’argument pour c ; ceci n’affectera pas le programme car c a déjà une valeur par défaut. Vous pouvez spécifier des valeurs par défaut pour autant d’arguments que vous le souhaitez, mais veillez à le faire avec discernement.
Utiliser les fonctions pour organiser son code
Les fonctions sont utiles pour organiser votre code, le rendre plus lisible et plus efficace. Grâce aux fonctions, vous pouvez diviser votre code en morceaux plus petits et réutilisables qui sont plus faciles à comprendre et à maintenir. En outre, si vous devez apporter des modifications à votre code, vous n’avez qu’à modifier la fonction nécessaire plutôt que l’ensemble de la base de code.
