Exercices sur les listes

Exercice 01 – Tirage de l’EuroMillion

Partie 1

Ecrire une fonction euro() qui retourne un tuple contenant deux listes correspondant à un tirage de l’EuroMillion. Une liste correspondant aux boules du tirage et une liste correspondant aux numéros étoiles.

Pour l’EuroMillion, il y a 50 boules au tirage et 12 numéros étoiles.

Dans un tirage il ne peut évidemment pas se trouver 2 fois la même boule ou le même numéro étoile.

Vous utiliserez la bibliothèque random.

Sur la console voici un exemple d’utilisation de la fonction avec le résultat à obtenir après l’avoir appelé :

>>> euro()
([2, 10, 11, 24, 46], [3, 7])
Partie 2

Dans le programme principal, écrire un code permettant d’appeler la fonction euro() et d’afficher son retour de la manière suivante :

tirage : [20, 28, 33, 35, 43] numéro chance : [10, 12]

Exercice 02 – Jeu du Mémory

Pour ceux qui ne connaissent pas le fameux jeu du Mémory en voici un exemple sur ce lien.

Pour cet exercice le but est de créer des grilles de Mémory. Pour créer ces grilles nous utiliserons des listes et nous remplacerons les images par des nombres.

Partie 1

Ecrire une fonction memory_1D() retournant une liste. Cette liste doit s’apparenter à une grille de Mémory sur une seule ligne. La liste devra contenir deux chiffres 1, deux chiffres 2, deux chiffres 3, deux chiffres 4 et deux chiffres 5 disposés aléatoirement.

Note : si vous avez besoin de mélanger une liste vous pouvez utiliser la méthode shuffle de la bibliothèque random. l’instruction shuffle(l) retournera la liste l avec ces éléments mélangés aléatoirement.

La construction de liste devra se faire par compréhension.

Sur la console voici un exemple d’utilisation de la fonction avec le résultat à obtenir après l’avoir appelé :

>>> memory_1D()
[2, 1, 3, 3, 5, 2, 4, 1, 5, 4]
Partie 2

Ecrire une fonction memory_1D_n() prenant en argument le nombre de case n que devra contenir la grille de Mémory toujours sur une seule ligne. La fonction devra retourner une liste correspondant à cette grille.

>>> memory_1D_n(9)
[9, 8, 2, 1, 7, 3, 6, 3, 5, 8, 2, 4, 9, 1, 5, 4, 6, 7]
Partie 3

Ecrire une fonction memory_2D_n() prenant en argument le nombre de case n que devra contenir la grille de Mémory cette fois-ci sur plusieurs lignes (comme une vraie grille carré de Mémory). La fonction devra retourner la liste de liste correspondant à cette grille.

>>> memory_2D_n(8)
[[1, 8, 5, 6], [2, 7, 4, 2], [7, 1, 5, 4], [8, 3, 3, 6]]
Partie 4

Dans le programme principal, écrire un code permettant d’appeler la fonction memory_2D_n() et d’afficher son retour sous forme d’une grille comme ci-dessous :

4 3 2 1 
7 8 4 8 
3 5 2 1 
6 7 6 5