0 XP
?
Intermédiaire35 min25 XP

Objectifs de cette leçon

  • Importer des modules avec import
  • Utiliser from...import
  • Installer des paquets avec pip

Modules et packages 📦

Qu'est-ce qu'un module ? 🤔

Un module est un fichier Python contenant des fonctions, des variables ou des classes que tu peux importer dans ton propre code. C'est comme un kit d'outils pret a l'emploi.

💡 Python a des milliers de modules prets a l'emploi. Pas besoin de tout reinventer !


Importer avec import 📥

import math
print(math.pi)           # 3.141592653589793
print(math.sqrt(16))     # 4.0
print(math.ceil(4.2))    # 5

Importer avec from ... import 🎯

from math import pi, sqrt
print(pi)      # 3.141592653589793
print(sqrt(16)) # 4.0

Renommer avec as 🏷️

import math as m
print(m.pi)

from datetime import datetime as dt
now = dt.now()
print(now)

Les modules de la bibliotheque standard 📚

math — mathematiques 🔢

import math

print(math.pi)           # 3.141592653589793
print(math.e)            # 2.718281828459045
print(math.sqrt(25))     # 5.0
print(math.ceil(4.2))    # 5 (arrondi superieur)
print(math.floor(4.8))   # 4 (arrondi inferieur)
print(math.log(100, 10)) # 2.0
print(math.factorial(5)) # 120
print(math.gcd(12, 8))   # 4

random — aleatoire 🎲

import random

print(random.random())           # Nombre aleatoire entre 0 et 1
print(random.randint(1, 100))    # Entier entre 1 et 100
print(random.choice(["a","b","c"]))  # Element aleatoire
print(random.uniform(1.0, 10.0)) # Decimal entre 1.0 et 10.0

liste = [1, 2, 3, 4, 5]
random.shuffle(liste)
print(liste)  # Melange en place

datetime — dates et heures 📅

from datetime import datetime, timedelta

now = datetime.now()
print(now)
print(now.strftime("%d/%m/%Y"))  # "15/07/2025"
print(now.strftime("%H:%M"))     # "14:30"

naissance = datetime(2000, 5, 15)
age_days = (now - naissance).days
print(f"Tu as {age_days} jours")

demain = now + timedelta(days=1)
CodeSignificationExemple
%YAnnee (4 chiffres)2025
%mMois (01-12)07
%dJour (01-31)15
%HHeure (00-23)14
%MMinute (00-59)30

os — systeme d'exploitation 🖥️

import os

print(os.getcwd())
print(os.listdir("."))
print(os.path.exists("fichier.txt"))
print(os.path.join("dossier", "f.txt"))
os.makedirs("nouveau_dossier", exist_ok=True)

json — donnees JSON 🌐

import json

data = {"nom": "Alice", "age": 25}
json_str = json.dumps(data, indent=2, ensure_ascii=False)
print(json_str)

charge = json.loads('{"nom": "Bob", "age": 30}')
print(charge["nom"])

re — expressions regulieres 🔍

import re

texte = "Contactez-nous a alice@example.com ou bob@test.fr"
emails = re.findall(r'[\w.]+@[\w.]+', texte)
print(emails)  # ['alice@example.com', 'bob@test.fr']

if re.match(r'^\d{5}$', "75001"):
    print("Code postal valide")

Installer des packages avec pip 📲

pip install requests
pip install requests==2.28.0
pip install -r requirements.txt
pip list
pip install --upgrade requests
pip uninstall requests

Packages populaires

PackageUsage
requestsRequetes HTTP
pandasManipulation de donnees
numpyCalcul numerique
matplotlibGraphiques
flaskServeur web leger
beautifulsoup4Scraping web

Creer tes propres modules 🏗️

# fichier : mes_utils.py
def saluer(nom):
    return f"Bonjour {nom} !"

PI = 3.14159

class Calculatrice:
    @staticmethod
    def additionner(a, b):
        return a + b
# fichier : main.py
import mes_utils
print(mes_utils.saluer("Alice"))  # "Bonjour Alice !"
print(mes_utils.PI)               # 3.14159

Le bloc if __name__ == "__main__"

# fichier : ma_module.py
def dire_bonjour():
    print("Bonjour !")

# Ce code ne s'execute que si le fichier est lance directement
if __name__ == "__main__":
    dire_bonjour()
    print("Module en mode test")

Le systeme de packages 📁

mon_projet/
├── main.py
├── config.py
├── requirements.txt
├── utils/
│   ├── __init__.py
│   ├── maths.py
│   └── texte.py
└── data/
    ├── input.csv
    └── output.json
from utils.maths import additionner
from utils.texte import nettoyer_texte

Diagramme du systeme de modules 🔄


Bonnes pratiques ✅

# 1. Organisation des imports (PEP 8)
# a) Imports standard
import os
import json
from datetime import datetime

# b) Imports de packages tiers
import requests
import pandas as pd

# c) Imports locaux
from mon_package import ma_fonction

# 2. Utiliser des alias pour les noms longs
import numpy as np
import pandas as pd

Exercice pour toi 🎯

# Exercice 1 : Generateur de mots de passe
import random
import string

def generer_mdp(longueur=12):
    caracteres = string.ascii_letters + string.digits + "!@#$%"
    return ''.join(random.choice(caracteres) for _ in range(longueur))

print(f"Mot de passe : {generer_mdp(16)}")

# Exercice 2 : Horloge digitale
from datetime import datetime
import time

for i in range(5):
    now = datetime.now().strftime("%H:%M:%S")
    print(f"\r🕐 {now}", end="", flush=True)
    time.sleep(1)
print()

# Exercice 3 : Analyse de texte
import re
from collections import Counter

def analyser_texte(texte):
    mots = re.findall(r'\b\w+\b', texte.lower())
    compteur = Counter(mots)
    return {
        "nb_mots": len(mots),
        "mots_uniques": len(compteur),
        "plus_frequents": compteur.most_common(5)
    }

texte = "Le python est un langage. Python est populaire. Python est facile."
resultat = analyser_texte(texte)
print(f"Nombre de mots : {resultat['nb_mots']}")
print(f"Mots les plus frequents : {resultat['plus_frequents']}")

💡 Astuce : Verifie toujours la bibliotheque standard avant d'installer un package ! 🎯

⚡ Simulateur — Modules et packages

Étape 1/5
📝 Pseudo-code
1import math
2print(math.pi)
3from random import randint
4n = randint(1, 10)
5print(n)
⚙️ Exécution
📦 Mémoire
Aucune variable
🔀 Flux d'exécution
import math
3
Import du module

import math charge le module math dans la mémoire. On pourra ensuite accéder à ses fonctions avec le préfixe math.