Une fonction est une portion de code qui effectue une tâche ou un calcul relativement indépendant du reste du programme. Une fonction comporte des paramètres d’entrée sur lesquels elle travaille avant de retourner une valeur de sortie qui peut être stockée dans une variable. Si la fonction ne retourne rien (None), on parlera plutôt de procédure. Une fonction est un sous-programme réutilisable partout dans le code. Il est donc inutile de réécrire des instructions identiques. Il suffit de les inclure dans une fonction et d’appeler cette dernière à chaque fois que cela est nécessaire.
1. Les fonctions prédéfinies
Nous avons déjà utilisé quelques fonctions sans le savoir :
- print() : affiche n’importe quel nombre de valeurs passées en arguments.
- input() : interrompt le programme jusqu’à ce que l’utilisateur entre une chaîne de caractères puis presse la touche « Entrée ». Alors, le programme redémarre et affiche la chaîne de caractères.
- int() : transforme une chaîne de caractères en nombre entier (si celle-ci s’y prête) ou un nombre décimal en nombre entier (en ignorant ce qui est après la virgule).
- float() : transforme une chaîne de caractères en nombre décimal (si celle-ci s’y prête) ou un nombre entier en nombre décimal (exemple : 9.0)
- str() : transforme un nombre entier ou un nombre décimal en chaîne de caractères.
2. Créer une fonction
Pour créer une fonction, on utilise le mot-clé def. Voici comment une fonction est construite :

Pour appeler la fonction et stocker dans une variable la valeur qu’elle retourne, il suffit d’écrire :

Prenons l’exemple d’une fonction qui divise par deux la valeur passée en argument:

La fonction doit toujours précéder l’appel de fonction.
3. Passer plusieurs arguments à une fonction
Il est possible de passer plusieurs arguments à une fonction :

4. Nombre d’arguments indéterminés
Il est possible de passer à une fonction un nombre infini d’arguments. Pour ce faire, il suffit de rajouter un astérisque devant le paramètre qui recevra les arguments. En fait, cela a pour effet de créer une liste :

J’exécute ce bout de code dans un terminal IDLE-3 :

5. À quoi sert la docstring?
La docstring est une chaîne de caractères indentée juste après la déclaration d’une fonction. Elle fournit une documentation accessible grâce à la fonction help() :

Paramètres par défaut
Une fonction peut avoir des paramètres avec des arguments par défaut. Ces paramètres ne doivent pas précéder les paramètres sans arguments par défaut, sous peine de lever une exception.
Voici deux exemples. Dans l’appel de fonction du premier exemple, je ne passe qu’un seul argument qui correspond au premier paramètre de la fonction. Le deuxième paramètre utilise l’argument par défaut (2).

Dans ce deuxième exemple, je passe deux variables en arguments en modifiant l’argument du deuxième paramètre. Je dois préciser quel paramètre est modifié (diviseur = b).

Si je crée une fonction en déclarant un paramètre par défaut avant les autres paramètres (exemple : def diviser(diviseur = 2, x), Python retourne une exception et le programme ne s’exécute pas.
