En Python, une fonction est une série d’instructions structurées pour réaliser une tâche spécifique.
pour déclarer une fonction, il faut:
1- le mot clé « def «
2- suivi du nom de la fonction et des paramètres d’entrée entre parenthèses.
def add_numbers(x,y):
3- les instructions de la fonction doivent être indentées sous la déclaration.
Exemple de fonction simple:
# ma fonction prend 2 nombres en paramètres et me retourne leur somme.
# affiche 8 comme résultat
Les différents types de fonction
Les fonctions peuvent également avoir des paramètres optionnels, qui ont des valeurs par défaut spécifiées dans la déclaration de la fonction.

Ces valeurs sont utilisées si aucune valeur n’est fournie pour ces paramètres lors de l’appel de la fonction.
exemple:
# affiche 8 comme résultat
Il existe également des fonctions qui n’ont pas besoin de paramètre, ces fonctions s’appellent des fonctions sans paramètres.


Il est a noter que en python , les fonctions sont des objets de premières classes, cela signifie qu’elles peuvent être assignées à des variables, passées en tant qu’arguments à d’autres fonctions, et retournées comme valeurs de fonctions.![]()
Les docstring en Python
En Python, une docstring est une chaîne de caractère qui apparaît comme première instruction dans la définition de module, de fonction, de classe ou de méthode.
Les docstrings sont utilisées pour fournir de la documentation pour le code.
elles sont accessibles à l’aide de la fonction intégrée help() ou à l’aide de l’attribut __doc__ d’un objet.
Les docstrings sont entourés de guillemets triples, simples ou doubles.
Ils sont généralement écrits dans un format appelé « reStructuredText », il est conçu pour faciliter la lecture et la compréhension.
La docstring doit inclure une brève description de ce que fait le code, ainsi que toute information sur les arguments, les valeurs de retour et toutes les exceptions qui peuvent être déclenchées.
L’unpacking en Python
En Python, le « unpacking» fait généralement référence au processus d’attribution d’éléments dans un itérable (comme une liste ou un tuple) à des variables individuelles.
Cela peut être fait en utilisant l’opérateur * devant l’itérable à décompresser.
Par example


