Le module Python random vous offre un grand nombre de fonctions pour générer des nombres aléa­toires dans dif­fé­rents formats ; des entiers aux nombres à virgule flottante, en passant par la sélection d’éléments dans des listes.

Module random de Python : dé­fi­ni­tion

Le module random de Python est une bi­blio­thèque intégrée qui vous permet de générer des nombres aléa­toires et d’effectuer des opé­ra­tions basées sur l’aléatoire dans vos pro­grammes. Il comprend plusieurs fonctions de gé­né­ra­tion de nombres pseudo-aléa­toires qui peuvent être utilisées dans de nombreux cas d’ap­pli­ca­tion, de la si­mu­la­tion au dé­ve­lop­pe­ment de jeux en passant par des tâches de chif­fre­ment.

La ré­pé­ta­bi­lité est une ca­rac­té­ris­tique im­por­tante du module random. En dé­fi­nis­sant une valeur initiale ou seed, la gé­né­ra­tion aléatoire peut être re­pro­duite. Cela est pratique pour les tests, les ex­pé­riences et les si­mu­la­tions né­ces­si­tant des données aléa­toires co­hé­rentes.

Liste des fonctions du module random

Le module random de Python contient plusieurs méthodes pour générer et traiter des nombres aléa­toires. Le tableau suivant donne un aperçu des fonctions et de leurs pro­prié­tés :

Nom de la fonction Dé­fi­ni­tion
seed(a=None, version=2) Définit la valeur initiale (seed) pour le gé­né­ra­teur de nombres aléa­toires.
getstate() Renvoie l’état actuel du gé­né­ra­teur de nombres aléa­toires sous forme d’objet.
setstate(state) Réi­ni­tia­lise l’état du gé­né­ra­teur de nombres aléa­toires en utilisant un objet d’état.
getrandbits(k) Renvoie un entier de k bits.
randrange(start, stop, step) Génère un entier aléatoire à partir de la plage spécifiée.
randint(a, b) Renvoie un entier aléatoire dans la plage spécifiée.
choice(seq) Renvoie un élément aléatoire de la séquence donnée.
choices(population, weights=None, *, cum_weights=None, k=1) Retourne une liste de k éléments choisis aléa­toi­re­ment dans la po­pu­la­tion ; les pro­ba­bi­li­tés peuvent être spé­ci­fiées op­tion­nel­le­ment.
sample(k, population) Crée une liste de k éléments choisis aléa­toi­re­ment dans la po­pu­la­tion, sans doublons.
shuffle(x) Mélange les éléments d’une liste dans un ordre aléatoire.
random() Renvoie un nombre aléatoire à virgule flottante compris entre 0 et 1.
uniform(a, b) Renvoie un nombre aléatoire à virgule flottante dans la plage spécifiée, y compris les limites.
triangular(bas, haut, mode) Renvoie un nombre aléatoire à virgule flottante dans la plage de dis­tri­bu­tion trian­gu­laire.
betavariate(alpha, beta) Renvoie un nombre aléatoire à virgule flottante à partir d’une dis­tri­bu­tion beta.
expovariate(lambd) Renvoie un nombre aléatoire en virgule flottante à partir d’une dis­tri­bu­tion ex­po­nen­tielle.
gammavariate(alpha, beta) Renvoie un nombre aléatoire en virgule flottante à partir d’une dis­tri­bu­tion gamma.
gauss(mu, sigma) Retourne un nombre aléatoire en virgule flottante à partir d’une dis­tri­bu­tion gaus­sienne.
lognormvariate(mu, sigma) Retourne un nombre aléatoire en virgule flottante à partir d’une dis­tri­bu­tion lo­ga­rith­mique normale.
normalvariate(mu, sigma) Renvoie un nombre aléatoire à virgule flottante à partir d’une dis­tri­bu­tion normale.
vonmisesvariate(mu, kappa) Renvoie un nombre aléatoire à virgule flottante à partir d’une dis­tri­bu­tion de von Mises.
paretovariate(alpha) Renvoie un nombre aléatoire à virgule flottante à partir d’une dis­tri­bu­tion de Pareto.
weibullvariate(alpha, beta) Renvoie un nombre aléatoire à virgule flottante à partir d’une dis­tri­bu­tion de Weibull.

Sé­lec­tion­ner des éléments au hasard dans une liste

Si vous souhaitez sé­lec­tion­ner plusieurs éléments au hasard dans une liste, vous pouvez utiliser la fonction choices(seq, k=n) du module Python random, où n est le nombre d’éléments aléa­toires souhaités.

import random
# Une liste d’éléments
ma_liste = ['Pomme', 'Banane', 'Orange', 'Fraise', 'Cerise']
# Sélection aléatoire d’un élément dans la liste
elements_aleatoires = random.choices(ma_liste, k=3)
print("Éléments sélectionnés aléatoirement :", elements_aleatoires)
python

Dans ce cas, nous utilisons la fonction choices() pour sé­lec­tion­ner trois éléments au hasard dans la liste ma_liste. Le résultat est renvoyé sous forme de liste de trois éléments aléa­toires.

Hé­ber­ge­ment Web
Hé­ber­ge­ment Web de pointe au meilleur prix
  • 3x plus rapide, 60 % d'éco­no­mie
  • Haute dis­po­ni­bi­lité >99,99 %
  • Seulement chez IONOS : jusqu'à 500 Go inclus

Mélanger une liste

La fonction shuffle() ordonne les éléments de listes Python dans un ordre aléatoire.

import random
# Une liste d’éléments
ma_liste = ['Pomme', 'Banane', 'Orange', 'Fraise', 'Cerise']
# Mélanger les éléments de la liste
random.shuffle(ma_liste)
print("Liste mélangée :", ma_liste) # Exemple de sortie : Liste mélangée : ['Fraise', 'Banane', 'Pomme', 'Cerise', 'Orange']
python

Vous devez garder à l’esprit que shuffle() modifie la liste elle-même et n’en renvoie pas une nouvelle. Après l’ap­pli­ca­tion de shuffle(), la liste originale sera dans un ordre aléatoire.

Définir une graine (seed)

Si vous utilisez random.seed() du module random de Python pour définir une valeur de graine spé­ci­fique, le gé­né­ra­teur de nombres aléa­toires sera lancé lors de la gé­né­ra­tion de nombres aléa­toires basés sur cette dernière. Cela signifie que le fait de définir la même valeur de graine à un moment ultérieur générera le même ensemble de nombres aléa­toires dans votre ap­pli­ca­tion.

import random
# Définition de la valeur de la graine à 42
random.seed(42)
# Génération de nombres aléatoires
print(random.random())  # Exemple de sortie : 0.6394267984578837
print(random.random())  # Exemple de sortie : 0.025010755222666936
# Réinitialisation de la valeur de la graine à 42
random.seed(42)
# Génération à nouveau de nombres aléatoires
print(random.random())  # Exemple de sortie : 0.6394267984578837 (identique à la valeur précédente)
print(random.random())  # Exemple de sortie : 0.025010755222666936 (identique à la valeur précédente)
python

Après avoir défini la valeur de la graine, des nombres aléa­toires sont générés et imprimés. Si la valeur de la graine est à nouveau fixée à la même valeur, les mêmes nombres aléa­toires sont à nouveau générés. Dans notre exemple, la valeur de la graine est 42, ce qui rend les nombres aléa­toires re­pro­duc­tibles tant que la valeur de la graine reste la même.

Aller au menu principal