Vous êtes sur la page 1sur 5

Les fonctions

Jusqu’à présent, à chaque fois que nous faisions un exercice différent en python, il fallait créer un
nouveau fichier. Mais cela n’est pas très pratique et pose rapidement un problème quand nous
voulons faire des programmes plus complexes.
Pour résoudre ce problème, nous allons utiliser les fonctions.

Une fonction est une façon de donner un nom à une suite d’opérations afin de pouvoir la réutiliser à
notre guise. Les fonctions permettent ainsi de décomposer un programme complexe en sous-parties
pour pouvoir les traiter séparément et augmenter la lisibilité.

Remarque :
Sans le savoir, vous avez déjà utilisé des fonctions quand vous utilisiez print(), input() ou randint().

1) Premiers pas avec les fonctions


Les fonctions peuvent recevoir une ou plusieurs valeurs en entrée et peuvent retourner une ou
plusieurs valeurs en sortie.
Les valeurs que la fonction reçoit en entrée sont appelées les arguments ou paramètres de la
fonction.
Les valeurs de sortie sont les valeurs retournées par la fonction.

Exemple :

Ceci est un exemple d’une fonction qui prend en entrée un nombre et renvoie son carré.
Elle dispose d’un unique paramètre (ou argument) nommé nombre.
Elle renvoie une unique valeur nommée resultat.

2) Créations de fonctions
Pour définir une fonction, on utilise la syntaxe suivante :

Pour utiliser une fonction, on procède de la façon suivante (on va réutiliser la fonction carre vue
plus haut) :
Remarque :
Les parenthèses après le nom d’une fonction sont obligatoires de même que le symbole ‘:’ .

Remarque 2 : l’instruction return permet de retourner le ou les valeurs qui forment le résultat d’une
fonction. Toute instruction placée après le return ne sera pas effectuée.

3) Différents types de fonctions


Comme nous l’avons vu plus haut, une fonction prend en entrée un ou plusieurs arguments et
retourne des valeurs.
Cependant, il est possible de faire des fonctions qui ne retournent aucune valeur. C’est par exemple
le cas de la fonction print().

Une telle fonction s’appelle une procédure.

Exemple :

Remarque :
En Python, si on ne met pas de return, la procédure ainsi obtenue renvoie en fait None.

Testez sur Thonny en faisant print(affiche_somme(2,3)).

Il existe un dernier type de fonctions qui sont les méthodes. Nous apprendrons à utiliser des
méthodes plus tard au cours de l’année et vous apprendrez à créer des méthodes en classe de
Terminale.

4) Portée des variables


Lorsqu’une variable est déclarée à l’intérieur d’une fonction ou d’une procédure, elle n’est
accessible que dans celle-ci. On appelle ce genre de variables des variables locales.

Les variables déclarées à l’extérieur d’une fonction ou d’une procédure sont appelées des variables
globales. Elles sont accessibles à l’intérieur d’une fonction si une variable locale du même nom
n’existe pas.

Remarque :
Déclarer une variable locale en utilisant le même nom qu’une variable globale est en général une
mauvaise pratique et est fortement susceptible d’être source d’erreurs.
Exemple :

5) Spécification et documentation
Comme les fonctions sont destinées à être réutilisée, par vous-même et par d’autres, il est important
de préciser son fonctionnement.
Pour chaque fonction, nous allons donc systématiquement préciser ce qu’elle prend en paramètres,
ce qu’elle retourne et ce qu’elle fait. On appelle cela les spécifications de la fonction.

En Python, on précise ces spécifications sous la forme d’une documentation (docstring), qui est
juste du texte mis entre triple guillemets et placé dans la première ligne du corps de fonction (après
le def).
Remarque :
Il n’existe pas de convention universelle sur l’écriture de la documentation, mais pour tout le reste
de l’année, nous allons utiliser la convention suivante :
• Sur la première ligne, on met les types des paramètres, une flèche, et les types des valeurs de
retour. Si il n’y a pas de valeur de retour, on mettra None.
• En deuxième ligne on met les préconditions, c’est à dire les conditions que les paramètres doivent
satisfaire afin que la fonction ait un sens.
• En troisième ligne, on précise le rôle de la fonction.

Remarque 2 :

Voici les types Python à connaître pour le moment (la liste s’enrichira au cours de l’année) :

Type en français entier nombre à virgule chaîne de booléen


flottante caractère (texte)
Type en Python int float str bool
Exemple 42 4.2 « Hello » True

Exemple :
6) Exercices
Pour tous les exercices, les fonctions devront être documentées et testées.

Exercice 1 :

Ecrire une fonction Python qui prend en argument un nombre et qui renvoie son double.

Exercice 2 :

Soit le programme suivant :

Ce programme tente de faire la moyenne de 3 nombres passés en paramètre, de retourner le résultat


et de faire appel à la fonction.

1) Reproduire ce programme

2) Ajouter une documentation à la fonction

3) Corriger les erreurs en testant autant que nécessaire

Exercice 3 :

Ecrire en Python une fonction produit qui prend en paramètre deux entiers et qui renvoie leur
produit.

Exercice 4 :

Ecrire en Python une fonction maximum qui prend en paramètre deux entiers et qui renvoie le plus
grand des deux.

Exercice 5 :

Ecrire en Python une procédure conv_duree qui prend en paramètre une durée en seconde et qui
affiche cette même durée en heures, minutes, secondes.
Par exemple conv_duree(7422) affichera « 2 heures, 3 minutes et 42 secondes ».
Exercice 6 :

Ecrire en Python une fonction somme qui prend en entrée un entier a et un entier b, avec a < b, et
qui renvoie la somme des entiers de a à b (inclus).

Exercice 7 :

On rappelle qu’un entier i est diviseur de l’entier n si n%i vaut 0.


Ecrire en Python une fonction nombre_diviseurs qui prend en paramètre un entier n et qui retourne
le nombre de diviseurs de n.

Exercice 8 :

Ecrire en Python une fonction table qui :

• prend en paramètre un entier n


• demande successivement de rentrer le résultat de n*1, n*2, n*3, etc jusqu’à n*10.
• retourne le nombre d’erreurs commises lors des saisies.

Vous aimerez peut-être aussi