next up previous contents index
suivant: Utiliser Python par le monter: Utiliser Python en mode précédent: Instructions composites   Table des matières   Index

Définition de fonctions

Comme indiqué Section 10.4.5, une partie importante de la programmation consiste à construire des abstractions. Ici, ces abstractions seront réalisées sous la forme de fonctions Python.

Une fonction Python diffère de plusieurs manières d'une fonction mathématique. Une fonction Python contient simplement une suite d'instructions qui seront exécutées à l'appel de la fonction. Il est également possible de renvoyer une valeur à l'appelant de la fonction. Voici un exemple :

>>> def fac (n):
...     f = 1
...     i = 1
...     while i <= n:
...         f = f * i
...         i = i + 1
...     return f
... 
>>> fac(6)
720
>>> fac(7)
5040
>>>

Ici, nous avons défini une fonction dont le nom est fac avec un paramètre dont le nom est n. Le paramètre marche comme une variable normale, sauf qu'elle est initialisée par l'appelant, à savoir l'instruction qui fait l'appel à la fonction. La dernière ligne de la fonction indique que la valeur de la variable f sera renvoyée à l'appelant comme valeur de l'appel à la fonction. Après la définition de la fonction, on trouve deux appels, le premier avec l'argument $6$ et le deuxième avec l'argument $7$. L'argument de l'appel est la valeur qui va servir à initialiser le paramètre.

Les variables f et i, ainsi que le paramètre n sont des variables locales, à savoir qu'elles n'existent que pendant l'exécution des instructions du corps de la fonction. Une variable qui n'est pas à l'intérieur d'une fonction s'appelle une variable globale. Il peut y avoir une variable locale et une variable globale avec le même nom. Ce sont deux variables différentes, mais avec le même nom. Ceci est illustré par le code suivant (on suppose la définition de fac ci-dessus) :

>>> f = 321
>>> fac(5)
120
>>> f
321
>>>

Ici, la variable globale f est initialisée à $321$. Lorsque la fonction fac est appelée, la variable locale f dans la fonction fac sera utilisée pour contenir la valeur de la factorielle de n (ici $5$). Mais après le retour de la fonction fac, la variable globale f aura toujours la valeur $321$. Les variables locales sont essentielles en programmation, car elle permettent à une fonction d'être autonome, à savoir que son exécution n'influence pas, et n'est pas influencée par, l'affectation de variables globales.

Une fonction peut avoir plusieurs paramètres, séparés par une virgule :

>>> def exp (a, b):
...     e = 1
...     i = 0
...     while i < b:
...         e = e * a
...         i = i + 1
...     return e
... 
>>> exp(2, 6)
64
>>>

Cette fonction sert à calculer l'expression $a^b$ pour n'importe quelle valeur de $a$ et n'importe quel entier $b > 0$.


next up previous contents index
suivant: Utiliser Python par le monter: Utiliser Python en mode précédent: Instructions composites   Table des matières   Index