Académique Documents
Professionnel Documents
Culture Documents
T
1. Les listes en Python
a. Généralités
Nous avons déjà vu que l’on pouvait créer une liste en langage Python dans le TP
n°3.
Une liste en Python c’est une succession de valeurs, de n’importe quel type,
séparées par des virgules, le tout entre crochet.
Par exemple, [1.5,’Bonjour’,-6] est une liste composée d’un flottant, d’une chaine
de caractère et d’un entier.
Une liste est un type pour Python : list.
Comment gérer les éléments d’une liste ?
Dans un premier temps, regardons comment prendre un élément dans une liste. Il
faut déjà comprendre qu’une liste est une suite de valeurs, dans un ordre
particulier, définissant sa position dans la liste. Cependant, le comptage des
éléments commence à 0 (zéro), et non à 1. Pour « prendre » le premier élément de
la liste, il faut donc demander de prendre l’élément de position 0 :
On voit donc que la commande à saisir est liste[…], avec la position entre les
crochets.
Et si on dépasse la position maximale (ici la position maximale est 2), par exemple
4:
On remarque donc que la position [-1] correspond à la position [2], et [-3] à [0]…
Au-delà de [-3], on se retrouve avec la même erreur que si on dépasse [2]…
On peut aussi vouloir un morceau de la liste, par exemple les deux derniers
éléments :
Page 1 sur 6
TP 6 Python S.N.T. 2nde
La syntaxe est donc liste[a :b], où a est la position du premier élément de la liste
souhaité, et b est « la position + 1 » du dernier élément voulu, d’où « 3 » pour avoir
le dernier élément de notre liste qui est « 2 »…
Prenons une liste plus longue et regardons différentes syntaxes :
On remarque que la commande list(range(n)) crée une liste des entiers de 0 à (n-
1), où la position est égale à la valeur ; c’est donc un moyen simple de comprendre
la numérotation dans une liste.
Quelle(s) syntaxe(s) pour obtenir la valeur 4 ? On a deux possibilités :
l[4] ou l[-6] puisque 4 – 10 = -6.
b. Les opérations
La première opération est l’ajout d’un élément à une liste, après la création d’une
liste avec la commande append (qui signifie "ajouter" en anglais) :
Il est parfois nécessaire de supprimer une entrée de la liste. Pour cela vous pouvez
utiliser la fonction del :
Page 2 sur 6
TP 6 Python S.N.T. 2nde
Cette commande utilise la position dans la liste. Une autre méthode utilise la valeur
dans la liste, avec la commande remove :
Vous pouvez inverser les items d'une liste avec la commande reverse :
Il est possible de compter le nombre d'items d'une liste avec la commande len(…) :
Page 3 sur 6
TP 6 Python S.N.T. 2nde
Ainsi, on peut extraire un morceau d’une chaine de caractère comme dans une
liste. En revanche, les commandes append, remove, del, reverse ne fonctionnent
pas ! Les autres commandes sont possibles !
2. Le tri (les étapes seront à faire l’une après l’autre, après le bilan)
a. Première étape
Sans utiliser l’ordinateur, en travaillant seul, réfléchir à un processus (algorithme)
pour trier par ordre croissant une liste de nombres entiers positifs.
Vous pouvez prendre pour exemple la liste :
[5,9,2,7,4,6,10,2,11]
Nous ferons un bilan.
b. Deuxième étape
Toujours sans ordinateur, mais en groupe (3-4 élèves), réfléchir maintenant pour
trier la même liste, mais sans création d’une nouvelle liste, i.e. dans la même liste.
Nous ferons un bilan
c. Troisième étape
Sur l’ordinateur maintenant, aller à l’adresse :
http://lwh.free.fr/pages/algo/tri/tri.htm
- Découvrir si les algorithmes trouvés précédemment s’y trouvent et leur nom.
- Effectuer les tests de tri avec 100 éléments, et en choisissant un ordre initial
aléatoire, puis le meilleur des cas, et finir par le pire des cas.
- Essayer de comprendre les différences observées.
Sur l’ordinateur toujours, choisir deux algorithmes de tri dans la liste (un « stable »,
un « non stables ») et en faire la programmation sous Python (en s’aidant de la page
web).
Tester vos syntaxes avec l’exemple de la première étape.
Page 4 sur 6
TP 6 Python S.N.T. 2nde
EXERCICES DE SYNTHÈSE
Voici des questions pour contrôler vos connaissances en Python. Cela reprend plusieurs points
des TP précédentes et permet de vérifier le niveau d’acquisition des compétences liées à
l’utilisation de ce langage.
Les questions sont à traitées dans l’ordre, elles sont de difficultés croissantes, puisque de
moins en moins guidées.
L’ensemble des fonctions sont à mettre dans un même fichier Python nommé TP_Final.py.
1) Ouvrir Pyzo
7) Définir une fonction Python avec attribut liste_carres(n) qui renvoie la liste des carrés
des entiers de 1 à n.
Page 6 sur 6