Lecture d'un élément

Le cours

Comme les éléments d'un tableau sont classés dans un cetain ordre, il est logiquement possible de lire un élément particulier d'un tableau à partir de son numéro d'ordre.

Lecture d'un élément

Pour un tableau tab, on peut lire son élément d'indice i avec la syntaxe tab[i].

Attention, comme les indices commencent à zéro, la valeur de i doit être comprise entre zéro et n-1, où n est le nombre total d'items de tab.

Cette syntaxe est la même pour les tuples et les listes. Nous l'avons déjà vue pour les chaînes de caractères.

Le premier élément de tab est tab[0], son deuxième élément est tab[1], etc.

Exemple

Si Pérette possède quatre éléments, respectivement "veau", "vache", "cochon" et "couvée". On peut les représenter ainsi dans un tableau :

Items : "veau" "vache" "cochon" "couvée"
Indices : 0 1 2 3

Ci-dessous se trouve le même tableau, mais avec la syntaxe de Python. Étudiez ce code. Vous pouvez l'exécuter : le programme va afficher deux messages puis renvoyer une erreur.

Exercices

Les mois de l'année.

Programmez une fonction mois qui prend en paramètre numero, qui est un nombre entier compris entre 1 et 12. La fonction doit renvoyer le nom du mois correspondant à numero.

Par exemple, mois(1) doit renvoyer "janvier".

Vous disposez de la liste suivante : tab_mois = ("janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre")

Durée en heures, minutes, secondes

(Inspiré d'un exercice de Codex)

Vous disposez de durées exprimées sous forme de listes de trois nombres entiers, sous la forme [heures, minutes, secondes]. Par exemple, la durée 1 heure 12 minutes 30 secondes sera codée [1, 12, 30].

Vous devez programmer une fonction convertir_secondes qui prend en paramètre une liste écrite sous la forme [heures, minutes, secondes] et qui renvoie le nombre de secondes qui correspond à cette durée.

Par exemple, convertir_secondes( [1, 12, 30] ) devra renvoyer 4350.

Gareth Bale, humour british et sens des priorités.

Alors qu'il était sous contrat avec le Real Madrid FC, certains supporters de ce club reprochaient au footballeur gallois Gareth Bale de ne pas toujours donner son maximum pendant les matchs. Souvent blessé, il était aussi connu pour aimer jouer au golf pour se détendre. La rumeur courait qu'il préférait jouer au golf que s'entraîner avec son club de football.

Lors des célébrations suivant le match qualifiant le Pays de Galles pour l'Euro 2020, Gareth Bale est allé poser devant une bannière brandie par des supporters gallois, sur laquelle il était écrit Wales, golf, Madrid. In that order. La photo a fait le tour du monde.

Si les supporters gallois avait écrit en Python au lieu de l'anglais, il aurait pu coder ainsi :

Vous êtes coach d'une équipe de football dont les joueurs ou joueuses n'ont pas le sens des priorités que vous souhaiteriez.

Comme Gareth Bale, leurs priorités sont un tuple de la forme (pays, loisir, club) dans cet ordre. Vous voulez que cela devienne (pays, loisir, club). Programmez une fonction python priorite qui prend en paramètre un tuple de trois éléments (pays, loisir, club) et le renvoie un tuple avec les mêmes éléments, mais dans l'ordre : (club, pays, loisir).

Par exemple, pour ("Wales", "golf", "Madrid"), la fonction doit renvoyer ("Madrid", "Wales", "golf").

Fil rouge : Picus

Picus sharpei, Parque de El Retiro, Madrid - 01

Picus est un oiseau. Sur son territoire, il y a des arbres qu'il visite chaque jour pour y chercher des insectes à manger.

Dans la tête de Picus, les arbres sont numérotés : il y a le premier arbre, le deuxième, etc. toujours dans le même ordre.

Vous aller simuler cette situation avec des tableaux : pour Picus, un "territoire" est un tableau qui ne contient que des booléens, chacun de ces booléens représentant un arbre. Chaque élément d'un "territoire" est égal à True si Picus a déjà visité l'abre aujourd'hui, False sinon. Vous pouvez remplacer ces booléens par des 0 et des 1 comme vu dans le cours sur les booléens.

Par exemple, un territoire de trois arbres dont seul le premier a été visité sera codé par (1, 0, 0) ou [1, 0, 0].

Combien d'arbres visités ? Cas de 4 arbres.

Supposons qu'il y ait quatre arbres dans le territoire de Picus. Combien d'arbres a-t-il visité aujourd'hui ?

Pour répondre à cette question, programmez une fonction Python compter_visites_quatre qui prend en paramètre un tableau de quatre booléens. Cette fonction doit renvoyer le nombre d'arbres visités, c'est-à-dire le nombre d'éléments du tableau qui sont égaux à True.

Fil rouge : Tic-tac-toe

Le tic-tac-toe est un jeu de réflexion qui se joue à deux sur une grille carrée de 9 cases.

La grille comporte 3 lignes de 3 cases. Les deux joueurs, appelés "X" et "O", doivent chacun à leur tour remplir une case vide avec le symbole qui leur est attribué.

Le joueur gagnant est le premier qui réussit à aligner trois symboles sur la même ligne, la même colonne ou la même diagonale.

Ci-dessous se trouvent les étapes d'une partie où "X" gagne.

Sur cette image, on voit que "X" commence à jouer sur la case de la première ligne et troisième colonne. Puis "O" joue sur la case de la première ligne, première colonne, etc.

"X" gagne en alignant trois "X" sur la troisième ligne.

Nous choisissons de coder l'état d'une grille par une variable grille qui est une liste python de 9 éléments qui sont chacun une chaîne de caractères parmi " ", "X" ou "O". Chaque élément est égal au symbole présent dans la grille. Les 9 éléments sont codés dans l'ordre, de gauche à droite et de haut en bas.

Par exemple, la deuxième grille de l'image ci-dessus sera codée par :

grille = ["O", " ", "X", " ", " ", " ", " ", " ", " "]

Case vide

Pour pouvoir jouer sur une case, il faut qu'elle soit vide.

Programmer une fonction est_vide qui prend deux paramètres : une grille de tic-tac-toe codée par une liste de 9 éléments et un indice compris entre 0 et 8.

Cette fonction doit renvoyer un booléen : True si la case est vide et False sinon.

Gagné !

Lorsqu'un joueur vient de jouer, il faut savoir s'il a gagné.

Programmez une fonction victoire qui prend en paramètres une grille de tic-tac-toe codée avec une liste de 9 éléments et le symbole d'un joueur ("X" ou "O").

Cette fonction doit renvoyer un booléen : True si un joueur a gagné, False sinon.