11 bibliothèques et modules Python que tout développeur devrait connaître



Les bibliothèques et les modules simplifient considérablement la tâche des programmeurs.

Lors de la conception de projets, il est fréquent de rencontrer des situations complexes qui ne peuvent être résolues uniquement avec les instructions de base d’un langage de programmation. C’est là que les bibliothèques et les modules deviennent indispensables pour surmonter ces défis.

Heureusement, Python bénéficie d’un large éventail de modules et de bibliothèques. Le langage offre à la fois des modules intégrés et des ressources tierces pour le développement. Nous allons explorer ces deux catégories, qui sont toutes deux très précieuses pour les projets Python. Commençons par examiner les modules intégrés.

# Modules intégrés

Python est livré avec un ensemble conséquent de modules intégrés, adaptés à différents cas d’utilisation. Nous allons les examiner un par un, en fonction de leur application.

Collections – Types de données conteneurs

Python intègre divers types de collections pour le stockage de données. Par exemple, les tuples, les listes et les dictionnaires font partie des collections natives de Python. Le module `collections` enrichit ces collections intégrées avec des fonctionnalités supplémentaires.

Prenons l’exemple de la collection de données `deque` du module `collections`. Elle s’apparente à une liste Python, mais elle permet d’ajouter et de retirer des éléments des deux côtés. Cette fonctionnalité est plus rapide que les manipulations sur une liste standard. Vous pouvez donc utiliser `deque` selon vos besoins. Illustrons cela avec un exemple de code utilisant `collections.deque`.

import collections
nums = [1, 2, 3]
# création d'une collection deque à partir de la liste
deque = collections.deque(nums)

print(deque)

# ajout d'un élément à la fin
deque.append(4)

print(deque)

# ajout d'un élément au début
deque.appendleft(0)

print(deque)

# suppression de l'élément à la fin
deque.pop()

print(deque)

# suppression de l'élément au début
deque.popleft()

print(deque)

Exécutez ce code pour observer les résultats. Le module `collections` propose également d’autres types de collections de données.

Voici quelques exemples :

Compteur
Retourne un dictionnaire indiquant la fréquence d’apparition des éléments dans une liste.

C’est une sous-classe de la classe `dict`.

Liste d’utilisateur
Utilisée pour créer rapidement une sous-classe de `list`.
UserDict
Utilisée pour créer rapidement une sous-classe de `dict`.
UserString
Utilisée pour créer rapidement une sous-classe de `str`.

Pour explorer toutes les collections de données et leurs méthodes, consultez la documentation du module collections.

Note rapide : Utilisez la fonction intégrée `dir(object)` de Python pour visualiser toutes les méthodes d’un objet.

CSV – Manipulation de fichiers

Les fichiers CSV (Comma Separated Values) sont souvent utilisés pour stocker des données tabulaires. C’est un format couramment utilisé pour l’importation et l’exportation de données à partir de tableurs et de bases de données. Python intègre un module appelé CSV pour gérer ces fichiers.

Voyons un exemple de lecture de données à partir d’un fichier CSV.

Créez un fichier nommé `sample.csv` sur votre ordinateur et copiez-y les données suivantes.

Nom,Âge,Année d'obtention du diplôme

Hafeez,21,2021

Aslan,23,2019

Rambabu,21,2021

Le module CSV offre des méthodes pour la lecture et l’écriture de données. Nous allons nous concentrer sur la lecture des données d’un fichier CSV en utilisant ce module.

import csv

with open('sample.csv') as file:
    # création d'un lecteur CSV
    reader = csv.reader(file)
    
    # lecture ligne par ligne avec une boucle
    for row in reader:
        # 'row' est une liste contenant les éléments de la ligne CSV
        # on utilise join(list) pour reconvertir la ligne en string CSV
        print(','.join(row))

Exécutez ce code pour visualiser les résultats.

Le module offre également un objet `csv.writer()` pour écrire des données dans un fichier CSV. Vous pouvez explorer les autres méthodes par vous-même en utilisant `dir()` et `help()`. Un autre module intégré, JSON, est utilisé pour la manipulation des fichiers JSON.

Random – Génération aléatoire

Python possède un module appelé `random` pour la génération de données aléatoires. On peut générer toutes sortes de données aléatoires en utilisant différentes méthodes de ce module. Vous pouvez utiliser ce module dans des applications comme le morpion, les jeux de dés, etc.

Voyons un exemple simple de génération d’entiers aléatoires dans un intervalle donné.

import random

# génération d'un nombre aléatoire entre 1 et 100
print(random.randint(1, 100))

Vous pouvez explorer les autres méthodes du module `random` en utilisant `dir()` et `help()`. Mettons en pratique ce module en créant un petit jeu simple, que nous appellerons le jeu du nombre mystère.

Comment fonctionne ce jeu ?

Le programme génère un nombre aléatoire entre 1 et 100. L’utilisateur doit deviner ce nombre. À chaque essai, le programme indiquera si le nombre proposé est trop petit ou trop grand. Le jeu se termine lorsque l’utilisateur trouve le nombre mystère, et le nombre d’essais est affiché.

Voici le code source de ce jeu.

# import du module random
import random

# génération du nombre aléatoire
random_number = random.randint(1, 100)

# initialisation du nombre d'essais à 0
guess_count = 0

# boucle jusqu'à ce que l'utilisateur trouve le nombre
while True:
    # récupération de la saisie de l'utilisateur
    user_guessed_number = int(input("Entrez un nombre entre 1 et 100 :- "))

    # vérification de l'égalité
    if user_guessed_number == random_number:
        print(f"Vous avez deviné le nombre en {guess_count} essais")
        # sortie de la boucle
        break
    elif user_guessed_number < random_number:
        print("Votre nombre est trop petit")
    elif user_guessed_number > random_number:
        print("Votre nombre est trop grand")

    # incrémentation du nombre d'essais
    guess_count += 1

Tkinter – Applications graphiques

Tkinter est un module intégré pour le développement d’interfaces graphiques (GUI). Il est particulièrement adapté pour les débutants. Il permet de créer des applications GUI telles que des calculatrices, des systèmes de connexion, des éditeurs de texte, etc. De nombreuses ressources sont disponibles pour apprendre le développement GUI avec Tkinter.

La meilleure approche est de consulter la documentation officielle. Pour commencer avec Tkinter, n’hésitez pas à consulter cette documentation et commencez à créer vos propres applications GUI.

# Modules tiers

Requests – Requêtes HTTP

Le module `requests` est utilisé pour envoyer différents types de requêtes HTTP à un serveur. Il prend en charge l’envoi de requêtes HTTP/1.1. On peut également ajouter des en-têtes, des données et d’autres éléments en utilisant des dictionnaires Python. Ce module étant tiers, il faut l’installer. Exécutez la commande suivante dans le terminal ou l’invite de commandes pour installer le module `requests`.

pip install requests

Le module `requests` est facile à utiliser, même sans expérience préalable. Voyons comment envoyer une requête `get` et ce qu’elle retourne.

import requests

# envoi d'une requête get
request = requests.get("https://www.google.com/")

# affichage du code statut, l'URL et la requête
print(request.status_code)
print(request.url)
print(request.request)

Le code ci-dessus affiche le code de statut, l’URL et la méthode de la requête (GET, POST). Vous obtiendrez également le contenu source de l’URL, que vous pouvez récupérer avec `request.content`. Pour en savoir plus, référez-vous à la documentation du module `requests`.

BeautifulSoup4 – Web scraping

La bibliothèque BeautifulSoup est principalement utilisée pour le web scraping. C’est un outil pratique, facile à prendre en main, même pour les débutants, en consultant sa documentation. Prenons l’exemple de code qui permet d’extraire des informations à partir de rapports clients.

Vous pouvez installer BeautifulSoup en exécutant la commande suivante dans le terminal ou l’invite de commandes.

pip install beautifulsoup4

Voici un programme simple pour vous lancer dans le web scraping.

## Extraction de la liste de produits de ConsumerReport avec BeautifulSoup

## import des modules bs4 et requests
import bs4
import requests

## initialisation de l'URL
url = "https://www.consumerreports.org/cro/a-to-z-index/products/index.htm"

## récupération de la réponse de la page avec la méthode get du module requests
page = requests.get(url)

## stockage du contenu de la page dans une variable
html = page.content

## création de l'objet BeautifulSoup
soup = bs4.BeautifulSoup(html, "lxml")

## identification de la classe ou de l'id de la balise contenant les noms et les liens
div_class = "crux-body-copy"

## récupération de toutes les divs avec la méthode find_all
div_tags = soup.find_all("div", class_=div_class) ## récupération des divs ayant la classe spécifiée

## affichage de toutes les balises 'a' contenant un nom et un lien à l'intérieur des divs
for tag in div_tags:
    print(tag)

Exécutez ce code pour observer le fonctionnement du web scraping. Il existe d’autres frameworks de web scraping que vous pouvez explorer.

# Science des données et apprentissage automatique

Il existe des bibliothèques conçues spécifiquement pour la science des données et l’apprentissage automatique. Ces outils sont pour la plupart développés en C, ce qui les rend très rapides.

Numpy

Numpy est une bibliothèque utilisée pour le calcul scientifique.

Elle permet de manipuler des tableaux multidimensionnels. Python n’intègre pas nativement de tableaux. Les développeurs utilisent couramment NumPy dans leurs projets d’apprentissage automatique. C’est une bibliothèque open-source facile à apprendre. La plupart des ingénieurs en apprentissage automatique ou des scientifiques des données utilisent ce module pour des calculs mathématiques complexes.

Exécutez la commande suivante pour installer le module numpy.

pip install numpy

Pandas

Pandas est un module d’analyse de données. Il permet de filtrer les données plus efficacement, et propose différents types de structures de données pratiques à utiliser, ainsi que des outils de gestion de fichiers dans différents formats.

Installez ce module en utilisant la commande suivante.

pip install pandas

Matplotlib

Matplotlib est une bibliothèque pour le tracé de graphiques en 2D. Elle permet de visualiser les données sous forme de diagrammes variés, tels que des diagrammes à barres, des diagrammes d’erreurs, des histogrammes, des nuages de points, etc., Les graphiques générés peuvent être enregistrés dans différents formats d’image. Vous pouvez installer Matplotlib en utilisant la commande suivante.

pip install matplotlib

Note rapide : Vous pouvez installer Anaconda pour obtenir toutes les bibliothèques et modules nécessaires pour la science des données.

Si vous souhaitez vous perfectionner dans l’utilisation de Python pour la science des données et l’apprentissage automatique, jetez un coup d’œil à cet excellent cours Udemy.

# Frameworks Web

Python offre un large choix de frameworks web. Nous allons nous intéresser à deux frameworks largement utilisés par les développeurs : Django et Flask.

Django

Django est un framework web open-source, développé en Python. Il est très pratique pour créer des sites Web. Il est utilisé pour développer des sites web variés, tels que Instagram, Bitbucket, Disqus ou Mozilla Firefox.

  • Il permet de créer rapidement des sites web complexes, grâce aux nombreuses fonctionnalités intégrées.
  • Il prend en charge de nombreuses tâches liées au développement web.
  • Il fournit une sécurité contre les attaques d’injection SQL, les scripts intersites, la falsification de requêtes intersites et le détournement de clics.
  • On peut développer tout type de sites web, du système de gestion de contenu aux sites de réseaux sociaux.

La documentation de Django est très claire. Il est préférable d’avoir des connaissances de Python avant d’utiliser Django, mais ce n’est pas une nécessité absolue. Apprendre Django est facile.

Flask

Flask est un micro-framework web développé en Python.

Il est plus « pythonique » que Django. Il possède une excellente documentation. Il utilise le moteur de templates Jinja. La création de gros sites Flask peut s’avérer complexe. La plupart des fonctionnalités telles que le routage d’URL, la répartition des requêtes, la gestion des cookies, les sessions, etc., sont présentes à la fois dans Django et Flask.

Choisissez le framework en fonction de la complexité de votre site web. Django est de plus en plus populaire parmi les développeurs. C’est le framework le plus utilisé pour le développement web en Python.

Conclusion

J’espère que vous avez découvert différents modules, bibliothèques et frameworks pour Python.

Chacun est un débutant un jour.

Quel que soit votre point de départ, commencez par consulter la documentation, puis passez à la pratique. Si la documentation ne vous semble pas claire, n’hésitez pas à chercher des cours sur des sites web éducatifs.