Les modules

[latexpage]

sources : https://fr.wikibooks.org/wiki/Programmation_Python/Modules

Une application Python typique est constituée d’un programme principal accompagné d’un ou plusieurs modules contenant chacun les définitions des objets (fonctions, classes, constantes, …) qui lui sont utiles. Chaque module étant placé dans un fichier (.py) distinct, ce découpage permet :

  • de découper le code en plusieurs fichiers de taille plus petite
  • d’organiser ces objets selon une logique fonctionnelle (graphique, fichiers, multimédia, ..)
  • de partager ces objets avec plusieurs applications

Un module peut être appelé depuis plusieurs programmes, il s’agit d’un fichier .py commençant par son identité (qui ne contient pas de point).

N’importe quel fichier .py peut donc être appelé depuis un autre comme un module.

Organisation des modules

Le noyau de Python

Le noyau (core) de Python contient un relativement petit nombre d’objets qui lui sont intégrés (build-in) : uniquement ceux susceptibles d’être utilisés très fréquemment :

La Bibliothèque standard

La bibliothèque standard est fournie avec Python. Elle contient un grand de modules que l’on n’utilise qu’au cas par cas, selon les besoins de l’application et qui sont organisés fonctionnellement :

 

  • fonctions et constantes mathématiques : math
  • interface avec le système d’exploitation (fichiers, …) : os
  • génération de nombres aléatoires : random
  • interface avec l’utilisateur : Tkinter

liste complète des modules fournis avec Python

Bibliothèques externes

A l’instar de la bibliothèque standard de Python, une bibliothèque est un ensemble de modules, fournissant un grand nombres d’objets (fonctions, classes, …), à la différence près qu’elle n’est pas installé avec Python. il faut l’installer séparément.

Quelques bibliothèques font l’objet d’une description sur l’Informatique : c’est fantastique. Mais il en existe un très grand nombre, aussi pour les utiliser, il faut se référer à leur documentation (souvent très bonne) ou bien à des cours ou des tutoriels très faciles à trouver sur Internet.

 

 

Utilisation des modules

Importer un module

Ces modules doivent être importés explicitement avec une instruction import. Il y a différentes façons de procéder

Pour accéder aux noms des fonctions du module math  par exemple :

Import du nom du module seulement

>>> import math

L’interpréteur connais alors le nom du module  math , mais pas les noms de ses fonctions. Pour accéder à ces dernières, il faut utiliser le nom du module comme préfixe :

>>> math.sqrt(5)

Import de tous les noms du module

>>> from math import *

L’interpréteur connais alors tous les noms des fonctions du module math . On peut alors y accéder directement :

>>> sqrt(5)

Import de certains noms seulement

>>> from math import sqrt, log

L’interpréteur ne connais alors que les noms des fonctions sqrt()  et  log().  Les autres ne sont pas accessibles, même avec le préfixe math.  :

>>> sqrt(5)
2.23606797749979

>>> trunc(4.21)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'trunc' is not defined

>>> math.trunc(4.21)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'math' is not defined

Remarque : si vous avez testé les différentes instructions depuis le début de ce chapitre, Python ne renverra pas de message d’erreur pour la dernière instruction math.trunc() . En effet, la console a gardé en mémoire le nom du module math . Pour effacer ce nom de la mémoire de la console, il suffit de l’effacer, comme n’importe quelle autre variable : del math .

Lister le contenu d’un module

La fonction dir()  permet de lister l’ensemble des noms d’un module.

>>> dir(math)   # affiche la liste de tous les noms du module math
['__doc__', '__name__', '__package__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2',
'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1',
'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'hypot', 'isinf', 'isnan',
'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh',
'sqrt', 'tan', 'tanh', 'trunc']

Cette liste ne permet pas de distinguer les types des objets : par exemple cos  est le nom de la fonction cos() , alors que pi  est une constante.

Les bibliothèques externes

En de la bibliothèque standard, une très large communauté d’utilisateurs met à disposition des bibliothèques de toute nature. Ces bibliothèques doivent être installées séparément.

Voir Les bibliothèques Python

 

Quelques modules très utiles

Fonctions mathématiques

Le module math  (Bibliothèque standard) fourni les principales fonctions et constantes mathématiques.

Exercice :

  • calculer : $\ln⁡{5}$    $\log{256}$    $\sin⁡{\pi}$    $|-3,5|$    $100!$    $e^{i\pi}$    $1+\frac{1}{10^{16}}$

Pour accéder à des objets mathématiques plus puissants, on pourra utiliser la bibliothèque numpy.

Nombres aléatoires

Le module random  contient les fonctions random()  et randint().

>>> import random
>>> random
<module 'random' from 'C:\Python27\lib\random.pyc'>

>>> from random import random, randint
>>> random
<built-in method random of Random object at 0x03690268>

>>> random()
0.8871712328944913

Remarques :

  • il ne faut pas confondre le module random , le nom de la fonction random  et l’appel à la fonction random()  !
  • la fonction help(nom_de_la_fonction)  permet d’en savoir plus sur une fonction.

Exercices :

  • tester la fonction random()  pour choisir un décimal aléatoirement dans $[0, 1[$ ;
  • en utilisant la fonction randint() et la fonction help() ,  générer aléatoirement un entier relatif entre -100 et 100.

 

Dépôt de fichier réponse

 

Vous aimerez aussi...

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *