TP2 listes, indices, méthodes

Rappels de cours sur les 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.

TP6: Boucles bornées et parcours d’une liste

Ex 1: table de 3

On peut créer une liste VIDE, en faisant L = [], puis lui ajouter des valeurs. C’est ce qui doit être réalisé par ce programme.

L = []
for  i in  range(11):
  L.append(...)

Recopier et compléter le programme. Celui-ci doit compléter la liste avec les valeurs de la table de 3.

  • Question a1: Que vaut la liste L après ce programme? Quelles sont les valeurs prises par l’iterable i?

  • Question a2: Comment avez vous complété les ...? Comment feriez-vous pour compléter les valeurs de la table de 7?

Ecrire l’instruction en compréhension de liste qui construit la liste L. (voir cours sur les types sequentiels > listes > comprehension de liste)

Ex 2: Energie en sciences physiques

On donne les listes de relevés du temps et de la vitesse pour un mobile.

La vitesse vitesse[0]est relevée au temps t[0], vitesse[1]est relevée au temps t[1], etc…

t = [0,0.04,0.08,0.12,0.16,0.2,0.24]
vitesse = [5.2,4.8,4.41,4.02,3.63,3.23,2.84]

Dans une cellule Python,

  • Recopiez les 2 listes et leur contenu
  • commencez par attribuer 100 à la variable m.
  • créez une liste vide pour l’énergie: E = []
  • calculer les éléments de la liste E, l’energie cinetique pour un systeme de masse 100kg et de vitesse v, selon la loi:

E = 1/2 * m * v**2

Pour réaliser cela, vous completerez la boucle bornée sur les valeurs de vitesse:

for v in vitesse:
  E.append(...)

Ecrire l’instruction en compréhension de liste qui construit la liste E. (voir cours sur les types sequentiels > listes > comprehension de liste)

  • Question b: Recopier le script sur votre feuille.

Ex 3: algorithmes simples utilisant une boucle bornée

Le script suivant calcule la somme des 99 premiers entiers:

$$0 + 1 + 2 + 3 + …99$$

Tester le script suivant et lire le résultat.

somme = 0
for n in range(100):
  somme = somme + n
somme
  • Question d: adapter ce script pour que celui-ci calcule la somme des termes $2^i$ pour i variant de 0 à 99: $$2^0 + 2^1 + 2^2 + … + 2^{99}$$

  • Question e: adapter ce script pour calculer le nombre de boules de la pyramique à 7 étages suivante. Quel est ce nombre? Quel serait ce nombre pour une pyramide à 99 étage?

ID 32142797 © [Ekostsov](https://fr.dreamstime.com/ekostsov_info) | Dreamstime.com

ID 32142797 © [Ekostsov](https://fr.dreamstime.com/ekostsov_info) | Dreamstime.com

Ex 4: Autres types construits

Tuple

Soit le tuple T suivant:

T = (("A",1),("B",2),("C",3))

L’interpreteur python construit l’objet T de la manière suivante:

image - pythontutor

image - pythontutor

Lorsque l’on utilise la boucle bornée:

for elem in T:

…cela créé un itérable (un ensemble), comme sur l’image suivante:

en orange: ensemble des itérables

en orange: ensemble des itérables

Ecrire un programme qui parcourt les éléments de T, et affiche le caractère lu à la première position:

"A"
"B"
"C"

Dictionnaire

On souhaite construire un dictionnaire python D à partir du tuple T.

Les caractères seront les clés du dictionnaire, et les entiers, les valeurs correspondantes.

On souhaite que D soit constitué de: {"A":1,"B":2,"C":3}

Adapter le script précédent pour construire D à partir des éléments de T.

On peut aussi construire un dictionnaire par compréhension, en une seule ligne.

Exemple:

>>> L1 = ("a","b","c")
>>> dico = {i:L1[i] for i  in range(len(L1))}
>>> dico
{0: 'a', 1: 'b', 2: 'c'}

Construire le dictionnaire D par compréhension de dictionnaire.

Portfolio

  • Utiliser l’un des exemples utilisant une compréhension de liste pour repérer ce qu’est le variant de boucle, à quels endroits il faut le placer pour construire la liste.

Liens