Question 1Lequel des éléments suivants décrit correctement la différence entre une bibliothèque standard et une bibliothèque tierce ?
Catégories de la bibliothèque standard — Quand utiliser quoi
Obtiens une vue d'ensemble de la bibliothèque standard de Python répartie en 7 catégories. Gestion des dates, calculs numériques, E/S de données, concurrence — découvre quoi importer pour chaque situation.
La bibliothèque standard de Python est l'ensemble de centaines de modules que tu peux utiliser avec un simple import — pas besoin de pip install. Cet article organise le tout en 7 catégories pour que tu voies la disposition d'un coup d'œil.
Ce qu'est la bibliothèque standard — les modules livrés avec Python
La bibliothèque standard est la collection de modules qui fonctionnent dès l'instant où tu installes Python. Des éléments comme math, os et json sont disponibles avec un simple import — tu n'as jamais besoin d'exécuter pip install pour eux.
pip install séparé.| Type | Installation | Exemples |
|---|---|---|
| Bibliothèque standard | Livrée avec Python (sans installation) | math / os / sys / json / datetime / re / asyncio |
| Bibliothèque tierce | À ajouter via pip install | pandas / numpy / requests / fastapi |
Il existe des situations où la bibliothèque standard ne suffit pas, mais essayer la version standard d'abord paie généralement à long terme. Voici pourquoi.
- Pas d'installation supplémentaire, donc ça tourne partout — serveurs internes, CI, conteneurs Docker, et même le runtime navigateur que cette série utilise
- La gestion des versions est facile — une fois que tu fixes la version de Python, la version de la bibliothèque standard est aussi fixée automatiquement
- Éprouvée et stable — la bibliothèque standard évolue tout en gardant une compatibilité descendante stricte, donc le code que tu as écrit il y a des années fonctionne encore
Les 7 catégories par cas d'usage
La bibliothèque standard contient des centaines de modules, mais les regrouper en 7 catégories par objectif rend bien plus facile de savoir où chercher. Cette série suit le même ordre, parcourant chaque catégorie une par une de haut en bas.
| Catégorie | Modules représentatifs | Ce que tu peux faire |
|---|---|---|
| A Runtime et fichiers | sys / os / pathlib / shutil | Inspecter le runtime, manipuler fichiers et dossiers |
| B Nombres, dates, aléatoire | math / statistics / decimal / datetime / random | Calculs numériques, calculs monétaires à faible erreur, arithmétique de dates, génération de nombres aléatoires |
| C Chaînes et texte | re / string / textwrap / pprint | Extraction par regex, substitution de templates, retour à la ligne, affichage formaté |
| D E/S de données | json / csv / pickle / base64 / hashlib | Convertir des objets vers et depuis du texte ou des flux d'octets |
| E Structures de données étendues | collections / itertools / functools / dataclasses | Au-delà des simples list et dict — des structures de données plus riches |
| F Gestion des ressources | contextlib / logging | Construire tes propres blocs with et émettre des logs pour du code exploitable |
| G Concurrence et parallélisme | asyncio / threading / multiprocessing | Faire tourner du travail en parallèle |
Chaque catégorie liste plusieurs modules parce que l'objectif est le même mais l'angle est différent. Par exemple, dans la catégorie B, random et secrets génèrent tous deux des nombres aléatoires, mais random est pour les jeux et les données de test, tandis que secrets retourne des nombres aléatoires solides adaptés aux cas de sécurité comme les jetons de réinitialisation de mot de passe. Cette série traverse chaque catégorie et trie ces modules similaires-mais-différents pour que tu saches lequel attraper.
Comment écrire import — conventions qui évitent les collisions de noms
Il existe plusieurs façons d'écrire import quand tu fais appel à la bibliothèque standard (couvert en détail dans l'article précédent). Chacune a ses avantages et ses pièges, donc tu choisis selon la situation. Voici les quatre formes courantes.
| Forme | Exemple d'appel | Quand l'utiliser |
|---|---|---|
| import math | math.sqrt(2) | Le défaut. Quiconque lit le code peut voir d'où vient la fonction |
| import json as J | J.dumps(data) | Quand tu veux un alias court à l'intérieur d'un seul fichier (idem pour les conventions comme np / pd) |
| from datetime import datetime | datetime(2024, 1, 1) | Quand tu n'utilises qu'un ou deux noms du module |
| from os import * | getcwd() | À éviter en règle générale. C'est un nid à collisions de noms |
La forme import math montre d'où vient chaque nom au point d'appel, donc tu ne te perds pas en relisant le code plus tard. À l'inverse, la forme from package import function supprime le préfixe du nom du module (la partie attachée avant le nom de la fonction, comme le math. dans math.sqrt), ce qui te laisse écrire des choses compactes comme datetime(2024, 1, 1).
Évite from x import * en règle générale
Écrire from os import * pour tirer chaque nom peut écraser silencieusement des fonctions du même nom définies ailleurs. Par exemple, os.open() et le open() intégré sont des choses différentes, mais écrire from os import * remplace l'open intégré par os.open et casse la lecture et l'écriture de fichiers. Évite-le aussi bien pour tes propres modules que pour ceux de la bibliothèque standard — c'est le geste sûr.
Bibliothèques standard qui ne tournent pas dans le navigateur — comment cette série les gère
Les exercices de cette série tournent sur un runtime Python basé navigateur (MicroPython ou Pyodide). La majorité de la bibliothèque standard fonctionne très bien, mais tout ce qui a besoin de threads ou processus OS ne peut tout simplement pas être mis en route — le bac à sable du navigateur ne le permet pas. sys.argv (le mécanisme pour recevoir les arguments en ligne de commande) fonctionne aussi sur une vraie machine mais pas dans le navigateur, puisqu'il n'y a aucun moyen de passer des arguments. Pour ceux-là, on couvre les concepts avec des schémas pour que tu puisses les rappeler rapidement quand tu écris le code sur une vraie machine.
multiprocessing et subprocess qui lancent quelque chose à l'extérieur ne fonctionnent pas. Cette série les couvre avec des schémas seulement.| Traitement | Modules couverts | Raison |
|---|---|---|
| Pratique | math / re / datetime / json / collections / asyncio et bien d'autres | Tournent tels quels sur Pyodide / MicroPython |
| Axé schémas + quiz | threading / concurrent.futures | Les vrais threads ne tournent pas dans le navigateur, mais les concepts comptent dans le travail réel |
| Schéma seulement | multiprocessing / subprocess | Pas de processus OS signifie pas d'exercices pratiques possibles |
Pourquoi on couvre quand même les sujets schéma-seulement
Dans le travail réel, tu finiras par exécuter du code sur un vrai OS à un moment donné. Quand ça arrive, connaître les concepts derrière threading vs multiprocessing ou exécuter une commande via subprocess fait une énorme différence dans la facilité avec laquelle tu peux faire ce premier pas. Cette série ne saute pas les sujets juste parce qu'ils ne tournent pas dans le navigateur — au lieu de ça, on schématise les parties qui ne peuvent pas tourner, pour que tu puisses les rappeler quand tu as réellement besoin d'écrire le code.
Vérification des connaissances
Répondez à chaque question une par une.
Question 2Laquelle des formes d'import suivantes faut-il généralement éviter ?