IX. Deux modules utiles▲
D'abord, qu'est-ce qu'un module ? Il s'agit d'une sorte de bibliothèque (un regroupement de fonctions prédéfinies) qui une fois importée permet d'accéder à de nouvelles fonctions. Il en existe beaucoup. On peut citer :
- le module turtle qui permet de réaliser des dessins géométriques ;
- le module numpy qui permet de faire du calcul scientifique ;
- le module sympy qui permet de faire du calcul formel ;
- le module matplotlib qui permet de faire des graphiques en tout genre. Pour ceux que cela intéresse, il existe ce petit tutoriel pour débuter avec matplotlib.
Il y en a beaucoup d'autres, tant dans la nature (https://github.com/search?q=python+module) que dans la bibliothèque standard (http://docs.python.org/3/py-modindex.html), voire des modules que vous aurez codés vous-même. Parmi ces derniers, j'ai choisi de présenter les deux qui, en classe de seconde au moins, me semblent les plus utiles : math et random.
IX-A. Le module math▲
C'est un module qui permet d'avoir accès aux fonctions mathématiques comme le cosinus (cos), le sinus (sin), la racine carrée (sqrt), le nombre (pi) et bien d'autres…
2.
3.
4.
5.
>>>
from
math import
*
# importation du module
>>>
cos
(
pi) # cosinus d'un angle en radian
-
1.0
>>>
sqrt
(
25
) # racine carrée
5.0
En plus de ce qui a été cité précédemment, on peut ajouter les fonctions tangente (tan), partie entière (floor), exponentielle (exp) et logarithme népérien (log).
Concernant la fonction partie entière, il y en avait déjà une sans l'apport du module math. Il s'agit de int. Vous noterez une légère différence entre les deux.
2.
3.
4.
>>>
floor
(
12.123
)
12.0
>>>
int(
12.123
)
12
IX-B. Le module random▲
En anglais « random » signifie « le hasard ». Ce module va nous permettre d'utiliser des fonctions générant des nombres aléatoires. Les deux qui me semblent le plus utile dans un premier temps sont : - random() qui renvoie un nombre aléatoire entre 0 et 1, - choice(liste) qui choisit au hasard un nombre dans une liste donnée.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
>>>
from
random import
*
>>>
random
(
)
0.34461947461259612
>>>
random
(
)
0.024762749258158245
>>>
L =
[7
, 3
, 8
, 5
, 6
]
>>>
choice
(
L)
5
>>>
choice
(
L)
3
>>>
# cela marche pour une liste de chaînes de caractères
>>>
liste =
['Pierre'
, 'Paul'
, 'Jacques'
]
>>>
choice
(
liste)
'Jacques'
Comme dit plus haut, il y a différents types de modules :
- ceux qui sont inclus dans la version de Python comme random ou math ;
- ceux que l'on peut rajouter comme numpy ou matplotlib ;
- et ceux que l'on peut faire soi-même (il s'agit dans les cas simples d'un fichier Python contenant un ensemble de fonctions).
Mais pour importer un module, la façon de procéder reste la même, ou plutôt les mêmes, car il y a deux façons de faire. Voyons cela en prenant comme exemple le module math.
2.
3.
4.
5.
6.
7.
>>>
from
math import
sqrt
>>>
sqrt
(
36
)
6.0
>>>
cos
(
0
)
Traceback (
most recent call last):
File "<stdin>"
, line 1
, in
<
module>
NameError
: name 'cos'
is
not
defined
Le message d'erreur signifie simplement que l'on n'a pas importé la fonction cos. Donc si on recommence
2.
3.
4.
5.
>>>
from
math import
sqrt, cos
>>>
sqrt
(
36
)
6.0
>>>
cos
(
0
)
1.0
Et si on veut que toutes les fonctions du module soient importées, on peut procéder comme on l'a fait plus haut en utilisant l'étoile *.
2.
3.
4.
5.
>>>
from
math import
*
>>>
sqrt
(
36
)
6.0
>>>
cos
(
0
)
1.0
C'était la première façon de faire. Voici la deuxième façon de faire pour importer un module.
2.
3.
4.
5.
>>>
import
math
>>>
math.sqrt
(
36
)
6.0
>>>
math.cos
(
0
)
1.0
Bien que cette deuxième méthode paraisse plus lourde à écrire, elle peut avoir certains avantages.