Editeur Python
- Utiliser un notebook. Saisir une ou plusieurs lignes de code Python, puis appuyer simultanement sur Majuscule(Shift) + Entrée pour executer le code.
TP5 Listes
Ex 1: Elements d’une liste
Dans une cellule, saisir la ligne suivante:
s = ['lundi', 'mardi', 'mercredi']
Puis tester chacune des propositions suivantes:
proposition | résultat/commentaire |
---|---|
s[0] |
|
s[1] |
|
s[2] = "jeudi" |
|
s[4] = "samedi" |
erreur de type: … … |
- Question a: Comment modifie-t-on la liste
['lundi', 'mardi', 'mercredi']
pour obtenir['lundi', 'mardi', 'jeudi']
? Pourquoi l’instructions[4] = "samedi"
génère t-elle une erreur?
Slice: découpage d’une liste
Pour découper une liste, on utilise le séparateur :
entre les indices de début et fin de liste.
Avec la liste:
s = ['lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi']
Tester les propositions:
proposition | résultat/commentaire |
---|---|
s[1:] |
|
s[1:4] |
|
s[:4] |
|
s[1:-1] |
|
s[0:-1] |
|
s[0:-2] |
- Question b: Que retourne la proposition
s[1:]
? Découpe t-elle la liste à partir du premier élément, du 2e élément, ou bien retourne t-elle la liste entière?
Ex 2: Opérations sur les éléments de listes
Saisir le script suivant:
t = [2, 8, 9, 2]
t[2] = t[2] + 5
- Question c: Que vaut t à la fin du script
t[2] = t[2] + 5
? La valeur 5 est-elle ajoutée à chaque élément de la liste, ou bien à un seul élément?
Saisir le script suivant:
t = [10,6,1,12,15]
r = t[3] - t[1]
- Question d: Que vaut r à la fin du script?
Ex 3: Méthodes de listes
Dans une cellule, saisir la ligne suivante:
s = ['lundi', 'mardi', 'mercredi']
Puis tester chacune des propositions suivantes:
proposition | résultat/commentaire |
---|---|
len(s) |
|
s.append('jeudi') |
|
len(s) |
|
s.append('vendredi') |
|
len(s) |
|
s.pop() |
|
len(s) |
- Question e: Pourquoi la valeur renvoyée par
len(s)
évolue t-elle au cours de l’exercice?
Ex 4: chaine de caractere comme une liste
- script 1
debut = "Bon"
fin = "jour"
debut + fin
- script 2
debut = "20"
fin = "22"
debut + fin
- script 3
debut = [2,0]
fin = [2,2]
debut + fin
- Question f: pour chacun des scripts précédents, que réalise l’opération
+
? Y-a-t-il une différence entre- l’opérateur
+
appliqué à une chaine de caractères - l’opérateur
+
appliqué à une liste?
- l’opérateur
Ex 5:
Ecrivez un programme qui, selon le numéro
n
du jour de la semaine (1-7) affiche le nom du jour de la semaine.
Ce programme utilise une liste semaine
que vous devrez renseigner.
n = 3
semaine = ['Lundi', 'Mardi','Mercredi','Jeudi',...]
print(...)
Ex 6: Liste de listes
On définit une liste appelée matrice
Dans une cellule Python, saisir la ligne suivante:
matrice = [[1,2,3], [4,5,6], [7,8,9], [10,11,12]]
Utiliser un autre cellule de l’editeur pour explorer les propositions du tableau.
- Question g: Recopier et compléter le tableau:
proposition | valeur |
---|---|
matrice[0] |
retourne le premier élément de matrice |
matrice[1] |
… |
matrice[1][2] |
|
matrice[2][1] |
|
matrice[3][0] |
- Question h: on souhaite maintenant remplir la 1ere colonne du tableau, celle des propositions. En faisant des recherches à l’aide de l’editeur Python, retrouver celle qui affichera la bonne valeur, puis recopier et completer le tableau.
proposition | valeur |
---|---|
matrice[..][..] |
2 |
matrice[..][..] |
4 |
matrice[..][..] |
12 |
- Question i: On considère la liste de listes suivante :
tictactoe = [['X', 'O', 'O'],
['O', 'O', 'O'],
['O', 'O', 'X']]
(la liste peut être écrite sur une même ligne ou avec un retour à la ligne pour chaque élément comme vu ici)
- Question j: Quelle instruction permet d’obtenir une diagonale de ‘X’ ?
Ex 7: tracer un graphique
On donne les listes de relevés du temps et de la vitesse pour un mobile.
La vitesse v[0]
est relevée au temps t[0]
, v[1]
est relevée au temps t[1]
, etc…
t = [0,0.04,0.08,0.12,0.16,0.2,0.24]
v = [5.2,4.8,4.41,4.02,3.63,3.23,2.84]
- Completer le script python suivant pour afficher un graphique en nuage de points, avec le temps en abscisses et la vitesse en ordonnées.
import matplotlib.pyplot as plt
plt.clf()
plt.grid()
plt.scatter(...
plt.xlabel('temps(min)')
plt.ylabel('...')
plt.show()