Tutoriel Python: le module random avec Numpy

Table des matières

Introduction

  1. Import du module
  2. Fonctions des nombres entiers
  3. Fonctions des nombres réels
  4. Fonctions des séquences
  5. Exercices
  6. Corrigée

Conclusion

Introduction

Le module random permet de générer des nombres pseudo-aléatoires de différents types. Ce qui fait que les fonctions de ce module peuvent être regroupées comme suivant :

  • Fonctions spécifiques aux entiers.
  • Fonctions spécifiques aux réels.
  • Fonctions spécifiques aux séquences.

1. Import du module

Le module random est importé comme suivant :

2. Fonctions des nombres entiers

Les deux fonctions randint() et randrange() permettent de choisir arbitrairement une valeur entière d’un intervalle passé en paramètre.

Exemple 1 :

  • Code :

n = randint(5,10)
print(n)

  • Résultat de l’exécution :

Exemple 2 :

Dans cet exemple nous allons générer un nombre aléatoire dans l’intervalle [2, 15[ avec un écart de 3. C’est-à-dire un entier des valeurs suivantes : 2, 5, 8, 11.

  • Code :

n = randrange(2,15,3)
print(n)

  • Résultat de l’exécution :

3. Fonctions des nombres réels

Les deux fonctions random() et uniform() permettent de générer un nombre aléatoire à virgule.

La fonction random() renvoie un nombre de l’intervalle [0, 1[. Quant à la fonction uniform(), elle renvoie un réel de l’intervalle passé en ses paramètres.

Exemple :

  • Code :

a = random()
print(a)

  • Résultat de l’exécution :

Exemple :

Dans cet exemple on a généré un réel de l’intervalle [4,15].

  • Code :

a = uniform(4,15)
print(a)

  • Résultat de l’exécution :

4. Fonctions des séquences

Les fonctions de séquences permettent de manipuler les éléments d’une liste donnée.

La fonction choice() permet de renvoyer un élément aléatoire d’une séquence donnée en paramètre.

Exemple :

  • Code :

liste_num = [2,5,6,9,16,24]
print(choice(liste_num))

  • Résultat de l’exécution : 

La fonction shuffle() prend en paramètre une séquence et permet de lui changer d’ordre.

Exemple :

  • Code :

liste_num = [2,5,6,9,16,24]
shuffle(liste_num)
print(liste_num)

  • Résultat de l’exécution : 

Exemple :

  • Code :

liste_str = ["maison","table","ciel","arbre","voiture","souris"]
shuffle(liste_str)
print(liste_str)

  • Résultat de l’exécution : 

La fonction sample() permet de choisir une liste d’un nombre déterminé d’éléments de la séquence passée en paramètre.

Exemple :

Dans cet exemple on choisit au hasard trois éléments de la liste liste_str.

  • Code :

liste_str = ["maison","table","ciel","arbre","voiture","souris"]
print(sample(liste_str, 3))

  • Résultat de l’exécution : 

5. Exercices

Exercice 1 :

Ecrire un programme qui choisit pile ou face avec la probabilité de succès 1/2.

Exercice 2 :

Ecrire un programme qui affiche un jeu de 52 cartes et choisi cinq cartes au hasard de ce jeu.

Exercice 3 :

Ecrire un programme qui imite le jeu papier, caillou ou ciseau.

Exercice 4 :

Ecrire un programme qui choisit un nombre au hasard d’un intervalle donné par l’utilisateur et demande à ce dernier de le deviner. L’utilisateur aura cinq tentations.

6. Solution des exercices 

Exercice 1:

Dans cet exercice on compare la probabilité d’avoir face ou pile (c’est-à-dire ½) avec le réel généré à l’aide de la fonction random(). Si ce dernier est supérieur à ½ on affiche face et pile sinon.

  • Code :

a = random()
if a piece = 'pile'
else:
piece = 'face'
print(piece)

  • Résultat de l’exécution : 

Exercice 2 :

Dans cet exercice on va créer à l’aide d’une boucle imbriquée les 52 combinaisons pour avoir un jeu de cartes, puis on choisit au hasard de cinq éléments de ces combinaisons.

  • Code :

chiffre = ["1", "2", "3", "4", "5", "6", "7", "9", "10", "Valet", "Dame", "Roi"]
couleur = ["Coeur", "Pique", "Trefle", "Carreau"]
jeu_de_carte = []
tirage = []
#jeu de carte
for c in couleur :
for ch in chiffre :
carte = ch + c
jeu_de_carte.append(carte)
print(jeu_de_carte)
#tirage des 5 cinq cartes
for i in range(0,5) :
hasard = randint(0, len(jeu_de_carte)-1)
tirage.append(jeu_de_carte[hasard])
print(tirage)

  • Résultat de l’exécution : 

Exercice 3 :

Le code suivant demande à l’utilisateur de choisir soit papier, caillou soit ciseau, puis à l’aide de la fonction choice() on a un élément de ces trois choisi au hasard.

  • Code :

user = ""
liste = ["papier", "caillou", "ciseau"]
while user not in liste:
user = input("papier, caillou, ciseau..?!")
if user in liste:
computer = choice(liste)
print(computer)

  • Résultat de l’exécution :

Exercice 4 :

Pour cet exercice l’utilisateur fait entrer les deux bornes d’un intervalle, puis la fonction randint() choisie un nombre de cet intervalle puis demande à l’utilisateur de deviner celui-ci.

Chaque fois qu’on devine un nombre le programme vérifie si celui-ci est inférieur, supérieur ou égal au nombre choisi au hasard.

  • Code :

a = int(input("Entrer la première borne de l'intervalle:"))
b = int(input("Entrer la deuxième borne de l'intervalle:"))
n = randint(a,b)
i = 0
j = -1
while j != n and i i += 1
j = int(input('Devinez le nombre !'))
if j > n :
print("Pensez à un nombre plus petit !")
elif j print("Pensez à un nombre plus grand !")
else :
print("§§§§§§§ VOUS AVEZ GAGNEZ §§§§§§§")
break
if i == 6:
print("Vous avez perdu")
break

  • Résultat de l’exécution :

Conclusion

Dans ce tutoriel on a vu les différentes fonctions du module random, qu’on a regroupé dans trois catégories : fonctions pour les entiers, les réels et les séquences. Celles-ci sont utilisées dans différents contextes et pour différents scénarii. Dans ce module il existe aussi d’autres fonctions spécifiques aux statistiques et qui peuvent être consultées dans la documentation Python pour le module en question.

Article publié le 14 Octobre 2020par Imane BENHMIDOU