Module math
import mathDonne accès a des fonctions mathématiques avancées et constantes fondamentales:
sqrt, sin, cos,log, pi, etc.
Avant d’aller plus loin, prenons un moment pour bien comprendre comment fonctionne un
appel de fonction comme print("Bonjour", nom), int(input("Âge: ")) ou round(22.857, 2).
Une fonction est un bloc de code préfabriqué qui effectue une opération.
C’est comme un template qu’on peut réutiliser au sein de notre propre code.
Une fonction encapsule un comportement.
Pour l’utiliser, on l’appelle en écrivant son nom suivi de parenthèses.
Si elle recquiert des entrées, celles-ci sont listées entre les parenthèses.
round(22.857, 2)round(22.857, 2) :round( 22.857, 2 ) │ │ │ │ │ └── 2e argument (valeur passée au 2e paramètre - ndigits) │ └──────── 1er argument (valeur passée au 1er paramètre - number) └──────────────── nom de la fonctionCet appel retournera la valeur 22.86.
Ces deux termes sont souvent confondus, mais ils désignent des choses différentes :
round.# argument 1 argument 2# ↓ ↓resultat = round(22.857, 2)# ↑ ↑# paramètre 1 paramètre 2# (nombre) (ndigits)On peut passer comme argument une valeur littérale, une variable ou même directement le résultat d’un appel de fonction :
age = "25"
int("20") # Valeur littéraleint(age) # Variableint(input("Age: ")) # Résultat d'une fonctionCertaines fonctions retournent une valeur : elles produisent un résultat que tu peux stocker dans une variable ou utiliser dans une expression.
# round() retourne un nombre → on le stocke dans resultatresultat = round(22.857, 4)print(resultat) # 22.86
# On peut aussi utiliser le retour directementprint("IMC :", format(round(22.857, 2), ".2f"))Certaines fonctions effectuent une action sans produire de valeur.
C’est le cas de print() : elle affiche du texte à l’écran, mais ne retourne rien d’utile.
Si nous essayons de stocker le résultat de l’appel (valeur retournée par la fonction) à print, nous obtenons la valeur None.
La valeur spéciale None signifie « rien ».
resultat = print("Bonjour") # Affiche 'Bonjour'print(resultat) # Affiche Noneflowchart LR
A["Arguments<br/>(valeurs en entrée)"] --args--> FONCTION
subgraph FONCTION ["Fonction"]
direction LR
subgraph CORPS["Corps de la fonction"]
direction TB
I1["Instructions internes"] --> I2["Calculs, if-else,<br/>while, appels, ..."]
end
end
FONCTION --> C["Valeur de retour<br/>(résultat en sortie)"]
style FONCTION fill:#fef3c7,stroke:#f59e0b
style CORPS fill:#fff7ed,stroke:#fb923c,stroke-dasharray: 5 5
Chaque fonction reçoit des arguments en entrée, effectue une opération qui peut produire un effet
visible par l’utilisateur (ex: print), et peut retourner une valeur.
Jusqu’à présent, on a utilisé des fonctions sans se poser la question de leur provenance :
nom = input("Ton nom : ") # Lire une saisieage = int("22") # Convertir en entierprix = float("9.99") # Convertir en décimalimc = round(22.857, 2) # Arrondir un nombretexte = format(22.857, ".2f") # Formater pour l'affichageprint("Bonjour", nom) # Afficher à l'écranCes fonctions sont dites globales (ou built-in) : elles sont disponibles partout et peuvent être appelées en tout temps, sans rien faire de spécial. Python les charge automatiquement au démarrage du programme.
| Fonction | Rôle | Exemple |
|---|---|---|
print() | Afficher à l’écran | print("Bonjour") |
input() | Lire une saisie (retourne un str) | input("Nom : ") |
int() | Convertir en entier | int("42") → 42 |
float() | Convertir en nombre décimal | float("3.14") → 3.14 |
str() | Convertir en chaîne de caractères | str(42) → "42" |
bool() | Convertir en booléen | bool(0) → False, bool(1) → True |
abs() | Valeur absolue d’un nombre | abs(-5) → 5 |
round() | Arrondir un nombre | round(3.14159, 2) → 3.14 |
format() | Formater une valeur pour l’affichage | format(22.86, ".2f") → "22.86" |
type() | Connaître le type d’une valeur | type(42) → <class 'int'> |
isinstance() | Vérifier le type d’une valeur | isinstance(42, int) → True |
| Fonction | Rôle | Exemple |
|---|---|---|
len() | Connaître la longueur d’une séquence | len("Bonjour") → 7 |
ord() | Code numérique d’un caractère | ord("A") → 65 |
chr() | Caractère correspondant à un code | chr(65) → "A" |
min() | Plus petite valeur | min(3, 7, 1) → 1 |
max() | Plus grande valeur | max(3, 7, 1) → 7 |
pow() | Puissance (comme **) | pow(2, 10) → 1024 |
Les fonctions globales couvrent des besoins courants. Cependant, elles sont loin de suffire pour réaliser toutes les tâches d’un programme réel.
Considère les situations suivantes :
Aucune de ces fonctionnalités n’est disponible directement dans l’espace global.
La solution qu’offre Python: organiser les fonctions supplémentaires dans des modules qu’on peut récupérer au besoin. Cela permet de ne pas surcharger l’espace global, d’organiser le code par domaine et de charger uniquement ce qui est nécessaire.
Un module est un fichier Python qui regroupe des fonctions et des constantes autour d’un même thème. C’est comme une boîte à outils spécialisée :
Module math
import mathDonne accès a des fonctions mathématiques avancées et constantes fondamentales:
sqrt, sin, cos,log, pi, etc.
Module random
import randomDonne accès a des fonctions permettant de générer des valeurs aléatoires:
randint, choice, shuffle, etc.
importLes fonctions globales sont toujours disponibles. Les modules, eux, doivent être importés avec l’instruction import avant d’être utilisés.
Par convention, les import se placent toujours au début du fichier, avant tout le reste du code :
import mathimport random
print("=== MON PROGRAMME ===")nombre = random.randint(1, 100)racine = math.sqrt(nombre)print(nombre, "→ racine :", format(racine, ".2f"))mathLe module math contient les fonctions mathématiques avancées et les constantes fondamentales.
| Fonction | Description | Exemple | Résultat |
|---|---|---|---|
math.sqrt(x) | Racine carrée | math.sqrt(25) | 5.0 |
math.pow(x, y) | Puissance () | math.pow(2, 10) | 1024.0 |
math.ceil(x) | Arrondi vers le haut | math.ceil(3.2) | 4 |
math.floor(x) | Arrondi vers le bas | math.floor(3.8) | 3 |
math.log(x) | Logarithme naturel (ln) | math.log(math.e) | 1.0 |
math.log10(x) | Logarithme en base 10 | math.log10(1000) | 3.0 |
math.sin(x) | Sinus (x en radians) | math.sin(math.pi / 2) | 1.0 |
math.cos(x) | Cosinus (x en radians) | math.cos(0) | 1.0 |
math.radians(x) | Degrés → radians | math.radians(180) | 3.14159... |
math.degrees(x) | Radians → degrés | math.degrees(math.pi) | 180.0 |
math.factorial(n) | Factorielle () | math.factorial(5) | 120 |
math.gcd(a, b) | Plus grand commun diviseur | math.gcd(12, 8) | 4 |
| Constante | Valeur | Description |
|---|---|---|
math.pi | 3.141592653589793 | Le nombre π |
math.e | 2.718281828459045 | Le nombre d’Euler |
math.inf | inf | L’infini |
import math
rayon = float(input("Rayon du cercle : "))
aire = math.pi * rayon ** 2circonference = 2 * math.pi * rayon
print("Aire :", format(aire, ".2f"))print("Circonférence :", format(circonference, ".2f"))Rayon du cercle : 5Aire : 78.54Circonférence : 31.42randomLe module random permet de générer des valeurs aléatoires; très utile pour les jeux, les simulations et les tests.
| Fonction | Description | Exemple |
|---|---|---|
random.randint(a, b) | Entier aléatoire entre a et b (inclus) | random.randint(1, 6) → un dé |
random.random() | Décimal aléatoire entre 0.0 et 1.0 | random.random() → 0.7341... |
random.uniform(a, b) | Décimal aléatoire entre a et b | random.uniform(1.5, 9.5) |
random.choice(seq) | Choisir un élément au hasard | random.choice(["pile", "face"]) |
import random
print("=== LANCER DE DÉ ===")
de = random.randint(1, 6)print("Tu as obtenu :", de)
if de == 6: print("Bravo, c'est le maximum !")=== LANCER DE DÉ ===Tu as obtenu : 4import random
code = random.randint(1000, 9999)print("Ton code de vérification est :", code)Ton code de vérification est : 4821importDans les exemples précédents, nous avons utilisé l’instruction import sous sa forme de base.
Cependant, en Python, il existe plusieurs façons d’importer un module, offrant chacun des avantages.
import moduleimport math
print(math.sqrt(25)) # 5.0print(math.pi) # 3.141592653589793C’est la forme la plus courante et celle recommandée. Chaque fonction est préfixée par le nom du module (math.sqrt), ce qui rend le code clair : on sait d’où vient chaque fonction.
from module import fonctionfrom math import sqrt, pi
print(sqrt(25)) # 5.0print(pi) # 3.141592653589793On importe seulement les fonctions dont on a besoin, directement dans l’espace de noms. Plus besoin du préfixe math., mais on perd la traçabilité : en lisant sqrt(25), on ne voit plus immédiatement que ça vient du module math.
import module as aliasimport random as rd
de = rd.randint(1, 6)print("Dé :", de)On donne un surnom (alias) au module pour raccourcir l’écriture.
Très courant avec les bibliothèques scientifiques que tu verras plus tard (ex: numpy → np).
On peut aussi renommer une fonction spécifique :
from math import sqrt as racine
print(racine(25)) # 5.0En règle générale :
import module quand tu utilises beaucoup de fonctions du module → le préfixe clarifie l’originefrom module import ... quand tu n’utilises qu’une ou deux fonctions → évite le préfixe répétitifimport module as alias quand le nom du module est long → raccourci pratiqueLa bibliothèque standard de Python couvre les besoins généraux. Mais pour l’expérimentation et les calculs en sciences, l’analyse de données et la visualisation, la communauté Python a développé des bibliothèques externes extrêmement puissantes. On les découvrira dans les semaines à venir.
NumPy
NumPy est une bibliothèque utilisé pour faire du calcul scientifique et numérique haute performance :
tableaux multidimensionnels, algèbre linéaire, statistiques.
En sciences, NumPy est essentiel pour traiter de grandes quantités de données numériques.

Matplotlib
Matplotlib est une bibliothèque utilisée pour créer des graphiques et visualisations :
courbes, histogrammes, nuages de points, diagrammes en barres.
Elle sert à représenter visuellement des résultats.

flowchart TD
A["Fonctions en Python"] --> B["Fonctions globales<br/>(built-in)"]
A --> C["Modules de la<br/>bibliothèque standard"]
A --> D["Bibliothèques<br/>externes"]
B --> B1["print, input, int,<br/>float, round, format, ..."]
C --> C1["math, random, time,<br/>os, csv, json, ..."]
D --> D1["NumPy, Matplotlib,<br/>Pandas, SciPy, ..."]
style B fill:#dbeafe,stroke:#3b82f6
style C fill:#fef3c7,stroke:#f59e0b
style D fill:#f3e8ff,stroke:#a855f7
| Catégorie | Disponibilité | Exemples |
|---|---|---|
| Fonctions globales | Toujours disponibles, aucun import | print, input, round |
| Bibliothèque standard | Livrée avec Python, nécessite un import | math, random, time |
| Bibliothèques externes | À installer séparément avec pip | NumPy, Matplotlib |