Outre la syntaxe d'écriture, la principale différence entre les tuples et les listes en Python est que les listes sont modifiables et les tuples ne le sont pas.
Les listes sont donc intéressantes lorsqu'on veu pouvoir modifier les données. Sinon, à données égales, un tuple prend moins de place en mémoire qu'une liste.
Pour affecter une valeur val
à l'élément d'indice i
d'une liste tab
, on utilise la syntaxe tab[i] = val
.
Cela n'est pas possible pour un tuple.
Par exemple, exécutez le code suivant et étudiez-le. Il va lever une erreur lorsqu'on essaie de modifier le tuple.
Notez que la modification d'un élément d'une liste est possible en passant le tableau dans une fonction.
Par exemple, il est possible de programmer une fonction figues
qui prend en paramètre une liste non vide et remplace son premier élément par "figues"
.
Étudiez l'exemple suivant.
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", " ", " ", " ", " ", " ", " "]
Programmer une fonction jouer
. Cette fonction attend trois paramètres :
Cette fonction doit faire en sorte que le joueur représenté par le troisième paramètre joue dans la case donnée par le second. On suppose que cette case est vide, la fonction ne le vérifie pas.
La fonction ne renvoie rien, elle modifie la liste passée en premier paramètre.
Programmez une fonction permuter_extremes
qui prend en paramètre une liste comprenant au moins deux éléments.
Cette fonction doit permuter, dans la liste donnée en paramètre, le premier et le dernier élément.
La fonction ne renvoie rien, elle modifie la liste comme vu plus haut avec l'exemple figues
.
Programmez une fonction permuter
qui prend trois paramètres :
i
et j
.Cette fonction doit permuter, dans la liste donnée en paramètre, les éléments d'indices i
et j
.
La fonction ne renvoie rien, elle modifie la liste comme vu plus haut avec l'exemple figues
.