Apprendre les bases de Python pour réussir en N.S.I.
Open Source Your Knowledge, Become a Contributor
Technology knowledge has to be shared and made accessible for free. Join the movement.
Cours : Le module random
Présentation du module random
Le module random
est un module qui regroupe des fonctions permettant de simuler le hasard. Nous avons déjà croisé des modules (comme le module math
) et comme tous les module, pour pouvoir l'utiliser, il faut l'importer pour le mettre en mémoire. Donc dès qu'on voudra utiliser les fonctions qui suivent pour simuler le hasard, on devra mettre en entête la commande from random import *
.
Commençons par les fonctions les plus utiles :
-
randint(a,b)
: Donne un entier choisit au hasard entre a et b compris. Très pratique pour simuler un dés par exemple (appuyez plusieurs fois sur Run pour voir que le résultat change à chaque fois):12345from random import *n = randint(1,6)print(n)Enter to Rename, Shift+Enter to Preview -
random()
: Donne un flottant au hasard dans l'intervalle [0 ; 1[.
uniform(a,b)
: Donne un flottant au hasard entre a et b. Appuyez plusieurs fois sur Run pour voir le résultat.1234567from random import *n = random()print(n)x = uniform(12, 18)print(x)Enter to Rename, Shift+Enter to Preview -
choice(liste)
: Choisit un élément au hasard dans une liste. Par exemple :123456from random import *liste = [ "Pierre", "Caillou", "Ciseaux"]résultat = choice(liste)print(résultat)Enter to Rename, Shift+Enter to Preview -
shuffle(liste)
: Mélange la liste sur place (c'est à dire qu'il modifie la liste d'origine). Exemple :123456from random import *lettres = ["a" , "b", "c", "d", "e"]shuffle(lettres)print(lettres)Enter to Rename, Shift+Enter to PreviewOn remarquera bien que contrairement à d'habitude, on ne met par le résultat de
shuffle
dans une variable car il agit directement sur la liste qu'on lui donne en entrée. -
choices(liste, k=nombre)
etsample(liste, k=nombre)
: Ce sont deux fonctions qui permettent de simuler un tirage denombre
éléments dans une liste (Attention de bien mettrek =
avant) mais la première est un tirage avec répétition (on remet l'objet tiré avant de retirer) alors que la seconde est sans répétition (comme si on tirernombre
éléments en même temps).
On peut rajouter des poids avec la fonctionchoices(liste, weights = liste_poids, k= nombre)
.
Exemple :123456789from random import *lettres = ["a" , "b", "c", "d", "e"]résultat = choices(lettres, weights=[3,1,2,1,5], k=30)print(résultat)résultat2 = sample(lettres, k=3)print(résultat2)Enter to Rename, Shift+Enter to PreviewLe premier résultat est un choix de 30 éléments parmi les
lettres
avec répétition et les poids qui font comme s'il y avait 3 'a', 1 'b', 2 'c', 1 'd' et 5 'e'.
Pour le second, on tire simplement 3 lettres parmi les 5 sans répétitions possibles. Forcément, il faudra quek
soit inférieure à la longueur de la liste.
QCM
Voici quelques QCM pour voir si vous avez bien compris. N'hésitez pas à relire ce qui précède si vous avez un doute.
QCM 1
from random import *
n = randint(10,19)
print(n)
QCM 2
from random import *
n = uniform(10,19)
print(n)
QCM 3
from random import *
prénoms = [ "Pierre", "Marie", "Paul", "Elisa", "Léa", "Baptiste"]
résultat = ...
print(résultat)
Entrainement
Exercice 1
Créez un programme qui simule le lancer de deux dés, fait la somme et affiche le résultat de cette somme.
On affichera le résultat avec print
.
Exercice 2
Affichez une liste de de 200 nombres entiers aléatoires compris entre 5 et 17.
On affichera le résultat avec print
.
Exercice 3
On donne les résultats du jeu Pierre Caillou Ciseaux sous forme de liste. On veut simuler 100 résultats sous forme d'une liste.
Faire un programme qui crée cette liste de 100 résultats aléatoires parmi "Pierre", "Caillou" et "Ciseaux" et l'affiche.
On affichera le résultat avec print
.