Tirages au sort dans une liste

But : Dans la liste des élèves d'une classe, tirer au sort un élève, 5 élèves...

Récupération de la liste des élèves

Le programme ci-dessous permet de de récupérer les prénoms des élèves dans un fichier texte. Pour plus de détails, voir la rubrique "Manipulation de fichiers" dans la page "Python".

In [3]:
monFichier = open("/media/pv/1B71-6E9B/lycee/20182019/1S/liste1s1.txt", "r")

liste1s1 = []
for ligne in monFichier:
    prenom= ligne.replace('\n','')
    liste1s1 = liste1s1 + [prenom]

monFichier.close()
print(liste1s1)
['Sakina', 'Lilou', 'Corentin', 'Gaia', 'Lisa', 'Gabrielle', 'Imène', 'Nicolas', 'Matéo', 'Naïm', 'Axiane', 'Mazarine', 'Suzanne', 'Youenn', 'Félix', 'Melissa', 'Camille', 'Lisy-Anne', 'Hélène', 'Noa', 'Justine', 'Salim', 'Malo', 'Margot', 'Gwendal', 'Chourouk', 'Samuel', 'Elliot', 'Noé', 'Ambre', 'Antoine', 'Cléome', 'Hugo', 'Alban']

Tirage au sort d'un élève

In [6]:
from random import randint

i = randint(0,len(liste1s1)-1)
eleveChoisi = liste1s1[i]
print(eleveChoisi)
Elliot

Tirage au sort de 5 élèves

In [7]:
from random import randint

elevesChoisis = []
n = 0 #nombre d'élèves tirés au sort
while n < 5:
    i = randint(0,len(liste1s1)-1)
    eleve = liste1s1[i]
    if eleve not in elevesChoisis:
        n = n+1
        elevesChoisis = elevesChoisis + [eleve]
print(elevesChoisis)
['Camille', 'Axiane', 'Nicolas', 'Salim', 'Lisa']

Remarque : il existe choice dans random, qui fournit aléatoirement un élément d'une liste :

In [8]:
from random import choice

elevesChoisis = []
n = 0 #nombre d'élèves tirés au sort
while n < 5:
    eleve = choice(liste1s1)
    if eleve not in elevesChoisis:
        n = n+1
        elevesChoisis.append(eleve) #append ajoute eleve à la fin de la liste des élèves choisis
print(elevesChoisis)
['Corentin', 'Sakina', 'Cléome', 'Camille', 'Matéo']

Présentation (plus) spectaculaire (en chantier)

In [2]:
 
In [ ]: