Les listes

Table des matières

Remarque : ces exercices font appel à des connaissances sur les listes et peuvent être réalisés sans structure conditionnelle ni boucle ...

Slicing

En utilisant le slicing sur la liste l = list(range(100)) , afficher :
  • tous les nombres pairs compris entre 45 et 65 (inclus).
  • tous les multiples de 7 inférieurs à 70.
  • la liste des 10 premiers nombres.
  • la liste des 50 derniers nombres, dans l'ordre inverse.
  • la liste des nombres de 1 à 50, sans les vingtaines.
 

Mélanges et tris

  • Générer la liste N  des 20 premiers nombres entiers positifs.
  • Générer la liste L  des 20 premières lettres de l'alphabet (en majuscules).
  • Mélanger ces deux listes grâce à la fonction shuffle()  du module random .
  • Zipper ces deux listes mélanger.
  • Trier la liste ainsi créée tour à tour selon l'ordre des lettres puis sous celui des nombres.
 

Loto

  • Générer une liste boules  représentant l'ensemble des 49 boules du Loto.
  • En utilisant la fonction choice()  du module random , écrire une série d'instructions permettant de réaliser un tirage aléatoire de 6 boules parmi les 49.
  • Rechercher parmi les fonctions du module random s'il n'existe pas une solution plus simple...
 

Bingo !

  • Générer une liste (nommée jetons ) des 90 jetons numérotés du jeu de Bingo. (une seule instruction)
  • Générer un tableau (nommé grille ) de dimensions 3 lignes par 9 colonnes, chaque cellule contenant le nombre 0. (une seule instruction)
  • En utilisant la fonction sample()  du module random , générer une liste (nommée num_grille ) de 15 jetons tirés au hasard dans la liste jetons . (une seule instruction)
  • Dans chaque ligne de la grille, placer 5 numéros de jetons répartis aléatoirement (voir exemple ci-contre). Pour cela, pour chaque ligne de la grille :
    • générer une liste cases  de 5 indices de 0 à 8 correspondant à 5 cases d'une ligne de la grille. (une seule instruction)
    • à l'aide de 5 instructions similaires, remplir les cases de la grille avec les numéros
    • répéter et adapter ces dernières instructions pour compléter l'ensemble des 3 lignes de la grille.
  • Écrire une instruction permettant de tirer un numéro parmi une liste de jetons, puis une autre permettant de retirer ce jeton de la liste de jetons.
Pour réaliser la suite du jeu, il faut connaitre les structures conditionnelles et les boucles : suite de l'exercice ...  

Jeu de cartes

  • Créer la liste des 4 couleurs d'un jeu de carte : couleurs = ["♠", "♣", "♥", "♦"]
  • Créer  la liste des valeurs d'un jeu de 32 cartes : valeurs = ["7", "8", "9", "10", "V", "D", "R"]
  • En utilisant l'opérateur *  appliqué à valeurs , écrire une instruction permettant d'obtenir toutes les valeurs d'un jeu complet : jeu1 = ['7', '8', '9', '10', 'V', 'D', 'R', '7', '8', '9', '10', 'V', 'D', 'R', '7', '8', '9', '10', 'V', 'D', 'R', '7', '8', '9', '10', 'V', 'D', 'R']
  • Toujours avec l'opérateur * , et grâce à une fonction de tri, écrire une instruction permettant d'obtenir toutes les valeurs d'un jeu complet : jeu2 = ['♠', '♠', '♠', '♠', '♠', '♠', '♠', '♣', '♣', '♣', '♣', '♣', '♣', '♣', '♥', '♥', '♥', '♥', '♥', '♥', '♥', '♦', '♦', '♦', '♦', '♦', '♦', '♦']
  • Zipper ces deux listes afin d'obtenir un jeu complet sous la forme : jeu = [('7', '♠'), ('8', '♠'), ('9', '♠'),.........., ('D', '♦'), ('R', '♦')]
  • Mélanger le jeu grâce à la fonction shuffle()  du module random .
Il va s'agir à présent de trier le jeu ... mais comment faire sachant que  sorted(valeurs)  renvoie ['10', '7', '8', '9', 'D', 'R', 'V']  !!!
  • Trouver la définition de la fonction lambda  telle que [sorted(['10', '7', '8', '9', 'D', 'R', 'V'], key = lambda x: ???) renvoie bien ["7", "8", "9", "10", "V", "D", "R"]. (indice : utiliser liste valeurs  comme référence d'ordonnancement, ainsi que la méthode index() )
  • Avec la fonction sorted() , trier le jeu par la valeur des cartes, dans l'ordre inverse.
A ce stade, les cartes de même valeur ne sont pas triées par couleur ...
  • Trier le jeu de telle sorte qu'il soit exactement comme avant le mélange.
 

Widget not in any sidebars

Vous aimerez aussi...

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

code