Livre_silo 30 août 2013 16:32 Page 117
¨
©
¨
©
¨
©
¨
©
C o p y r i g h t E y r o l l e s
117
5 – Fonctions
De manière générale, il est important dans un algorithme de distinguer le résultat calculé
des sorties affichées à l’écran. De même, il faut distinguer les données sur lesquelles on
travaille des entrées tapées au clavier.
Quand elle ne se trouve pas à la fin d’une fonction, mais au milieu, l’instruction return a
pour effet d’interrompre le déroulement de la fonction. Ainsi, on peut écrire :
def puissance(x, n):
if (x == 0):
return 0
r = 1
for i in range(n):
r = r * x
return r
Si la valeur de x est nulle, l’instruction return 0 interrompra le déroulement de la fonction
et aucune des instructions suivantes (à partir de r = 1) ne sera exécutée.
SAVOIR-FAIRE Concevoir une fonction
Quand on conçoit une fonction, il est préférable de lui donner un nom explicite,
car elle est susceptible d’apparaître à de nombreux endroits dans le programme (On
n’imagine pas que les fonctions de la bibliothèque Python s’appellent f1, f2, etc.). En
revanche, les noms des arguments formels peuvent être courts, car leur portée, et donc
leur signification, est limitée au corps de la fonction.
Il convient par ailleurs de documenter convenablement les fonctions, en spécifiant
les hypothèses faites sur les arguments formels, leur relation avec le résultat renvoyé,
mais aussi les effets de la fonction (affichage, etc.) le cas échéant. Python propose un
mécanisme pour associer une documentation à toute fonction, sous la forme d’une
chaîne de caractères placée au début du corps de la fonction. Ainsi, on peut écrire :
def puissance(x, n):
"""calcule x à la puissance n, en supposant x > 0 et n >= 0"""
r = 1
for i in range(n):
r = r * x
return r
La documentation d’une fonction f peut être affichée avec help(f).
Exercice 5.1 Écrire une fonction qui prend en arguments deux entiers x et y et qui renvoie -1 si x < y,
0 si x = y et 1 si x > y.
Exercice 5.2 Écrire une fonction qui prend en arguments deux entiers n ⩾ 0 et d > 0 et qui renvoie un
couple formé du quotient et du reste de la division euclidienne de n par d. Le quotient et le reste seront
calculés par soustractions successives.
Précédent

- 130/402

Suivant