Livre_silo 30 août 2013 16:32 Page 127
¨
©
¨
©
¨
©
¨
©
C o p y r i g h t E y r o l l e s
127
5 – Fonctions
la fonction. Par exemple, on considère la fonction suivante, qui incrémente une variable
globale y et ne s’assure que très tardivement de la valeur de son argument x :
def f(x):
global y
...
y = y + 1
...
assert x != 0
return 1 // x
Bien que chaque appel à f(0) provoque une erreur AssertionError, toutes les instructions
placées avant assert x != 0, en particulier l’affection y = y + 1, seront exécutées. Ceci peut
être une source d’erreur difficile à détecter dans un programme.
Une autre solution pour écrire une fonction partielle est de ne renvoyer aucun résultat
quand les arguments sont en dehors du domaine. Par exemple, on peut écrire la fonction
divise en utilisant une instruction conditionnelle qui teste la valeur de y avant de diviser :
def divise(x, y):
if y != 0:
return x // y
Comme on l’a vu dans la section 5.1.1, la valeur None sera renvoyée par divise si la variable y
est égale à 0. Cette solution présente tout de même l’inconvénient de ne pas informer
clairement l’utilisateur quand la fonction est appelée en dehors de son domaine.
5.2.4 Fonctions de bibliothèque
Tous les langages de programmation répandus proposent des fonctions toutes faites pour
la plupart des besoins courants, écrites par les concepteurs du langage eux-mêmes, ou
par des utilisateurs, puis intégrées au fil du temps dans la distribution du langage. Ces
fonctions écrites dans le langage et fournies avec lui sont regroupées dans ce qu’on appelle
la bibliothèque standard.
Python n’ échappe pas à la règle et prétend même être un langage « piles incluses » pour
signifier que tout ce dont le programmeur peut avoir besoin est fourni avec le langage. Les
différentes fonctions sont organisées en modules thématiques variés : représentation exacte
des fractions, compression de fichiers, protocoles réseau….
Parmi les modules les plus utiles à l’élève de classes préparatoires — et, pour certains, déjà
mentionnés plus haut — on peut citer :
• math qui contient toutes les fonctions habituellement utilisées en analyse ;
• random qui calcule des nombres pseudo-aléatoires ;
• fractions qui sert à manipuler des nombres rationnels en valeur exacte ;
• numpy qui fournit des outils variés pour le calcul scientifique. Ce dernier ne fait pas partie
de la bibliothèque standard et doit donc être installé à part.
¨
©
¨
©
¨
©
¨
©
C o p y r i g h t E y r o l l e s
127
5 – Fonctions
la fonction. Par exemple, on considère la fonction suivante, qui incrémente une variable
globale y et ne s’assure que très tardivement de la valeur de son argument x :
def f(x):
global y
...
y = y + 1
...
assert x != 0
return 1 // x
Bien que chaque appel à f(0) provoque une erreur AssertionError, toutes les instructions
placées avant assert x != 0, en particulier l’affection y = y + 1, seront exécutées. Ceci peut
être une source d’erreur difficile à détecter dans un programme.
Une autre solution pour écrire une fonction partielle est de ne renvoyer aucun résultat
quand les arguments sont en dehors du domaine. Par exemple, on peut écrire la fonction
divise en utilisant une instruction conditionnelle qui teste la valeur de y avant de diviser :
def divise(x, y):
if y != 0:
return x // y
Comme on l’a vu dans la section 5.1.1, la valeur None sera renvoyée par divise si la variable y
est égale à 0. Cette solution présente tout de même l’inconvénient de ne pas informer
clairement l’utilisateur quand la fonction est appelée en dehors de son domaine.
5.2.4 Fonctions de bibliothèque
Tous les langages de programmation répandus proposent des fonctions toutes faites pour
la plupart des besoins courants, écrites par les concepteurs du langage eux-mêmes, ou
par des utilisateurs, puis intégrées au fil du temps dans la distribution du langage. Ces
fonctions écrites dans le langage et fournies avec lui sont regroupées dans ce qu’on appelle
la bibliothèque standard.
Python n’ échappe pas à la règle et prétend même être un langage « piles incluses » pour
signifier que tout ce dont le programmeur peut avoir besoin est fourni avec le langage. Les
différentes fonctions sont organisées en modules thématiques variés : représentation exacte
des fractions, compression de fichiers, protocoles réseau….
Parmi les modules les plus utiles à l’élève de classes préparatoires — et, pour certains, déjà
mentionnés plus haut — on peut citer :
• math qui contient toutes les fonctions habituellement utilisées en analyse ;
• random qui calcule des nombres pseudo-aléatoires ;
• fractions qui sert à manipuler des nombres rationnels en valeur exacte ;
• numpy qui fournit des outils variés pour le calcul scientifique. Ce dernier ne fait pas partie
de la bibliothèque standard et doit donc être installé à part.
