TP1 listes

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’instruction s[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?

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()

Suite du TP: Les boucles et les parcours de liste

Lien vers l'énoncé du TP6