BAC PRO CIEL

← Retour Python
Cours en ligne

Python - Module 7

Utiliser le module random
Ce module présente l'importation de modules en Python et l'utilisation du module random pour générer des nombres pseudo-aléatoires, choisir des éléments au hasard ou mélanger une liste.

Sommaire

1. Importer un module

La fonction random() appartient au module random. Pour utiliser les fonctions de ce module, il faut d'abord l'importer.

import random mon_nombre = random.random() mon_autre_nombre = random.randint(1, 10)
À retenir :
un module est un fichier Python contenant du code réutilisable : fonctions, classes ou variables.

2. Méthodes d'importation

Importer tout le module

import random nombre = random.randint(1, 10)

Cette méthode est la plus simple et la plus lisible. On utilise le nom du module, un point, puis le nom de la fonction.

Importer une fonction précise

from random import randint nombre = randint(1, 6)

Utiliser un alias

import random as aleatoire nombre = aleatoire.randint(1, 100)

Importation déconseillée

from random import *
Cette méthode est déconseillée, car elle peut provoquer des conflits de noms avec d'autres modules ou avec des variables du programme.

3. Le module random

Le module random contient plusieurs fonctions permettant de générer des nombres pseudo-aléatoires ou de travailler aléatoirement avec des séquences.

import random
Dans les exemples suivants, on considère que le module random a été importé.

4. Fonctions courantes

random.random()

Renvoie un nombre décimal compris dans l'intervalle [0.0 ; 1.0[.

nombre = random.random() print(nombre)
0.6778704449511866

random.randint(a, b)

Renvoie un nombre entier aléatoire entre a et b. Les deux bornes sont incluses.

nombre = random.randint(1, 6) print(nombre)
4

random.uniform(a, b)

Renvoie un nombre décimal aléatoire compris entre a et b.

nombre = random.uniform(4.5, 7.9) print(nombre)
5.925994939338326

random.randrange(start, stop, step)

Renvoie une valeur sélectionnée aléatoirement dans une plage similaire à range(). La borne stop n'est pas incluse.

nombre = random.randrange(0, 10, 2) print(nombre)
8

5. Choisir ou mélanger une séquence

random.choice(sequence)

Renvoie un élément aléatoire d'une séquence non vide.

couleurs = ["rouge", "vert", "bleu", "orange", "jaune", "rose"] couleur = random.choice(couleurs) print(couleur)
orange

random.shuffle(liste)

Mélange directement les éléments d'une liste.

cartes = ["As", "Roi", "Dame", "Cavalier", "Valet"] print("Mes cartes actuelles :", cartes) random.shuffle(cartes) print("Mes cartes mélangées :", cartes)
Mes cartes actuelles : ['As', 'Roi', 'Dame', 'Cavalier', 'Valet'] Mes cartes mélangées : ['Roi', 'Cavalier', 'As', 'Valet', 'Dame']
shuffle() ne crée pas une nouvelle liste : il modifie directement la liste existante.

6. Pseudo-aléatoire et sécurité

Les nombres générés par random sont des nombres pseudo-aléatoires. Cela signifie qu'ils sont produits par un algorithme, ce qui donne une impression de hasard.

Important :
Le module random n'est pas adapté aux usages nécessitant une sécurité élevée, comme la cryptographie. Pour les activités courantes, il est largement suffisant.

7. Récapitulatif

Fonction Rôle
random.random() nombre décimal entre 0.0 et 1.0
random.randint(a, b) entier entre a et b inclus
random.choice(liste) élément aléatoire d'une liste
random.shuffle(liste) mélange directement la liste
random.uniform(a, b) nombre décimal entre a et b
random.randrange(...) entier pris dans une plage

8. Erreurs fréquentes

Oublier l'import

nombre = random.randint(1, 6)
NameError: name 'random' is not defined

Confondre randint() et randrange()

random.randint(1, 6) # peut donner 6 random.randrange(1, 6) # ne peut pas donner 6
randint(a, b) inclut la borne b, alors que randrange(start, stop) n'inclut pas stop.

Utiliser shuffle() comme si elle renvoyait une nouvelle liste

cartes = ["As", "Roi", "Dame"] melange = random.shuffle(cartes) print(melange)
None

Utiliser choice() sur une liste vide

random.choice([])
IndexError: Cannot choose from an empty sequence

9. Synthèse

Voici les notions essentielles à retenir pour ce module.

Importer

  • import random
  • from random import randint
  • import random as alias

Nombres

  • random()
  • randint()
  • uniform()
  • randrange()

Séquences

  • choice()
  • shuffle()

Attention

  • import obligatoire
  • bornes incluses / exclues
  • shuffle() modifie la liste
  • pseudo-aléatoire
Points clés à retenir :
Un module doit être importé avant d'être utilisé.
random.randint(a, b) inclut les deux bornes.
random.randrange(start, stop) n'inclut pas stop.
random.shuffle() modifie directement la liste.
random n'est pas adapté à la cryptographie.