Dans cette vidéo, nous allons introduire la notion de module. Un module, c'est en fait un fichier Python qui finit en .py, un fichier Python normal, et lorsqu'on importe ce fichier avec l'instruction import, nous allons voir ça dans quelques secondes, ça va créer un objet module. Un module en fait contient un certain nombre de fonctions, d'opérations à effectuer et l'idée des modules, c'est de mettre des opérations similaires dans le même fichier. Donc en fait vous pouvez voir un module comme une sorte de boîte à outils que vous importez lorsque vous avez besoin de l'ouvrir. Ouvrons maintenant un interpréteur Python pour commencer à jouer avec les modules.
Nous allons commencer par importer le module random. Pour importer un module, on utilise l'instruction import suivie du nom du module. Maintenant que j'ai importé ce module, je peux faire un print de random et je vais voir qu'effectivement cet objet est un objet de type module. Maintenant, je peux accéder à tous les attributs de ce module avec la fonction built-in dir. Donc, si je fais un dir de random, je vais voir tous les attributs qui existent et vous vous souvenez que si l'attribut commence ou finit par un underscore, c'est un attribut que vous ne devez pas manipuler vous-mêmes, donc tous les attributs qui n'ont pas d'underscore ce sont les attributs que vous pouvez utiliser. Je peux avoir l'aide d'un module en utilisant la fonction built-in help. Si je fais help de random, je vais voir toute l'aide liée à random. On voit qu'il y a énormément d'aide. D'ailleurs, je vous fais remarquer que c'est assez rare en pratique d'utiliser l'instruction help, enfin, la fonction built-in help, directement sur un module, parce que ça fait beaucoup de texte, c'est beaucoup plus pratique de regarder ça directement sur internet, dans l'aide de Python. Mais par contre help est très utile lorsque vous voulez regarder le fonctionnement d'une méthode particulière d'un module.
Refaisons un dir de random. On voit qu'on a un certain nombre de méthodes, et maintenant, je vais regarder quel est le fonctionnement de la méthode randint. Je vais faire un random.randint et je veux voir l'aide. Si je suis sur IPython je mets un point d'interrogation, si vous n'utilisez pas IPython ou un notebook, écrivez la fonction built-in help. Et je vais voir l'aide de randint. Que fait randint ? Il me retourne un nombre au hasard choisi entre a et b en incluant a et b. Je vais maintenant appeler cette méthode sur mon module ; la notation, c'est point donc je donne le nom du module point le nom de la méthode à appeler, et je vais choisir un entier entre 1 et 100 et ça va effectivement me calculer un entier au hasard ; dans ce cas-là, c'est 45 ; et évidemment, chaque fois que je relance, j'ai un nouvel entier choisi au hasard. Python est livré avec un grand nombre de modules, c'est ce qu'on appelle la librairie standard, il y en a autour d'une centaine. Ces modules vous permettent de faire un grand nombre d'opérations courantes et l'avantage de la librairie standard, c'est qu'à chaque fois que vous installez Python sur une machine, vous avez la certitude que la librairie standard va venir avec cette installation de Python.
Regardons quelques opérations que l'on peut effectuer avec la librairie standard. On peut faire de la programmation parallèle ou de la programmation asynchrone, on peut faire de la persistance de données, une opération que l'on appelle sérialisation pour garder une copie des objets sur le disque dur, on peut faire de la communication sur internet, Python supporte quasiment tous les protocoles classiques sur internet, on peut formater les données et lire des formats spécifiques de données sur internet, on peut manipuler des fractions ou des nombres décimaux, on peut écrire des expressions régulières, gérer des dates et des calendriers, interagir avec le système de fichiers, créer des fichiers, des répertoires, parcourir des répertoires, on peut faire également de la compression de fichiers et on peut même écrire des interfaces graphiques.
Vous voyez donc que vous avez un grand nombre de modules qu'on appelle la librairie standard livrée avec Python mais Python a également des centaines de milliers de modules écrits par des groupes de développement ou alors par des individus que vous pouvez charger et importer dans votre programme. Nous verrons notamment dans ce MOOC une partie de la librairie utilisée pour la programmation scientifique, ce qu'on appelle le data-science, notamment les modules numpy et pandas.