Commit ca2367f9 authored by BERNHARD Delphine's avatar BERNHARD Delphine
Browse files

Ajout cours 4

parent 38691839
%% Cell type:markdown id: tags:
# Listes
## Sommaire
1. [Compléments](#complements)
1. [Qu'est-ce qu'une liste ?](#definition)
1. [Ajout d'éléments à une liste](#ajout)
1. [Suppression d'éléments](#suppression)
1. [Longueur d'une liste](#longueur)
1. [Concaténation de listes](#concatenation)
1. [Tri de listes](#tri)
1. [Exercice : liste de livres](#ex_livres)
1. [Exercice : affichage du mois](#ex_aff_mois)
1. [Exercice : liste de courses](#ex_courses)
1. [Exercice : traduction des jours de la semaine](#ex_jours_semaine)
%% Cell type:markdown id: tags:
## Travail préparatoire <a name="complements" />
1. 📺 Regardez la vidéo suivante <a href="https://www.youtube.com/watch?v=5UOSiCPu5aM">PYTHON LISTES et TUPLES</a> jusqu'à 13min40 environ (le reste de la vidéo sort du cadre de ce cours, même si elle montre des choses intéressantes)
Mettez la vidéo sur pause dès que nécessaire et exécutez les exemples de commandes données dans la vidéo à l'aide la cellule ci-dessous (n'oubliez pas de cliquer sur "Exécuter / Run" ou SHIFT + ENTREE).
> 👉 C'est en codant que l'on apprend à coder ! 👈
%% Cell type:code id: tags:
``` python
# Test des exemples de la vidéo : taper votre code ci-dessous
```
%% Cell type:markdown id: tags:
2. 🧩 Répondez au [Questionnaire d'auto-évaluation 1 sur les listes](https://moodle3.unistra.fr/mod/quiz/view.php?id=574080) sur Moodle
%% Cell type:markdown id: tags:
## Qu'est-ce qu'une liste ? <a name="definition"></a>
Les listes permettent de stocker des séquences, c'est-à-dire des collections finies d'éléments ordonnés selon un ordre précis. Les éléments sont stockés dans des "cellules" ordonnées et indicées. L'indice est le numéro d'emplacement d'un élément dans la séquence. Il s'agit d'un entier positif ou négatif. Lorsque l'on déclare une liste, les éléments sont séparés par des virgules et l'ensemble est entouré par des crochets.
%% Cell type:code id: tags:
``` python
jours = ["lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi", "dimanche"]
```
%% Cell type:markdown id: tags:
Indices de la liste :
| lundi | mardi | mercredi | jeudi | vendredi | samedi | dimanche |
|---|---|---|---|---|---|---|
| 0 | 1 | 2 | 3 | 4 | 5 | 6 |
%% Cell type:markdown id: tags:
Le premier indice de la liste est `0` :
%% Cell type:code id: tags:
``` python
print(jours[0]) # Affiche lundi
print(jours[6]) # Affiche dimanche
print(jours[7]) # IndexError : il n'y a pas d'élément d'indice 7 dans la liste
```
%% Cell type:markdown id: tags:
Les listes sont modifiables et il est donc possible de changer le contenu d'une "cellule" :
%% Cell type:code id: tags:
``` python
jours[0] = "Monday"
print(jours) # Affiche ['Monday', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi', 'dimanche']
```
%% Cell type:markdown id: tags:
On peut également récupérer des sous-séquences d'une liste, appelées tranches (*slices*). Par exemple, pour récupérer les 5 premiers éléments (à noter que l'élément d'indice 5 est exclu) :
%% Cell type:code id: tags:
``` python
print(jours[0:5]) # Affiche ['Monday', 'mardi', 'mercredi', 'jeudi', 'vendredi']
```
%% Cell type:markdown id: tags:
On peut également faire des listes de listes :
%% Cell type:code id: tags:
``` python
fr = ["chat", "chien", "cheval"]
en = ["cat", "dog", "horse"]
de = ["Katze", "Hund", "Pferd"]
animaux = [fr, en, de]
print(animaux) # Affiche [['chat', 'chien', 'cheval'], ['cat', 'dog', 'horse'], ['Katze', 'Hund', 'Pferd']]
print(animaux[1][2]) # Affiche horse
```
%% Cell type:markdown id: tags:
## Ajout d'éléments à une liste <a name="ajout"></a>
L'ajout d'éléments à une liste se fait à l'aide de la méthode `append`. Une méthode est un code prédéfini qui réalise une action donnée.
%% Cell type:code id: tags:
``` python
fr.append("vache")
print(fr) # Affiche ['chat', 'chien', 'cheval', 'vache']
```
%% Cell type:markdown id: tags:
Il est également possible d'insérer des éléments à une position donnée :
%% Cell type:code id: tags:
``` python
fr.insert(1, "hamster")
print(fr)
```
%% Cell type:markdown id: tags:
## Suppression d'éléments <a name="suppression"></a>
La suppression se fait à l'aide du mot-clé `del`.
%% Cell type:code id: tags:
``` python
del(fr[1])
print(fr)
```
%% Cell type:markdown id: tags:
Il est également possible d'utiliser la méthode `remove`:
%% Cell type:code id: tags:
``` python
fr.remove('vache')
print(fr)
```
%% Cell type:markdown id: tags:
## Longueur d'une liste <a name="longueur"></a>
%% Cell type:markdown id: tags:
La longueur d'une liste, c'est-à-dire le nombre d'éléments qu'elle contient, s'obtient à l'aide de la fonction `len()` :
%% Cell type:code id: tags:
``` python
print(len(fr))
```
%% Cell type:markdown id: tags:
## Concaténation de listes <a name="concatenation"></a>
Il est possible de concaténer des listes à l'aide de l'opérateur d'addition `+` :
%% Cell type:code id: tags:
``` python
fruits = ["pomme", "poire", "banane"]
legumes = ["poireau", "chou", "carotte"]
ingredients = fruits + legumes
print(ingredients)
```
%% Cell type:markdown id: tags:
## Tri de listes <a name="tri"></a>
Les listes peuvent être triées à l'aide `sort()` :
%% Cell type:code id: tags:
``` python
ingredients.sort()
print(ingredients)
```
%% Cell type:markdown id: tags:
## Exercice : liste de livres <a name="ex_livres"></a>
Créer une variable appellée `bons_livres` sous forme de liste vide. Ajouter vos livres préférés à la liste (au moins 3) puis afficher les deux derniers livres ajoutés à la liste.
%% Cell type:code id: tags:
``` python
# Exercice : liste de livres
bons_livres = []
```
%% Cell type:markdown id: tags:
## Exercice : affichage du mois <a name="ex_aff_mois"></a>
Source : http://ressources.unisciel.fr/sillages/informatique/python/ch03_listes_fonctions/co/exercice_10_03.html
Écrire un programme qui demande à l'utilisateur un numéro de mois (de 1 à 12), puis affiche : « Vous avez sélectionné le mois de : xxxxxx » (avec xxxxxx janvier si l'utilisateur a choisi 1, août si l'utilisateur a choisi 8...). Les mois seront stockés sous forme de liste.
%% Cell type:code id: tags:
``` python
# Exercice : affichage du mois
```
%% Cell type:markdown id: tags:
## Exercice : liste de courses <a name="ex_courses"/>
*Inspiré de http://www.france-ioi.org/algo/task.php?idChapter=651&iOrder=5*
Vous devez réaliser une recette avec 5 ingrédients. Chacun de ces ingrédients a un coût au kg différent : 9, 5, 12, 15, 7.
Ecrire un programme qui lit 5 entiers correspondant au poids (en kilogrammes) qu'il faut acheter pour chaque ingrédient. Le programme devra calculer et afficher le coût total pour tous ces ingrédients.
%% Cell type:code id: tags:
``` python
# Exercice : liste de courses
```
%% Cell type:markdown id: tags:
## Exercice : traduction des jours de la semaine <a name="ex_jours_semaine"></a>
Écrire un programme qui affiche les traductions des jours de la semaine en anglais et français.
Les affichages du programme devraient être les suivants :
```
Il y a 7 jours dans la semaine
Le dernier jour de la semaine est dimanche
Affichage des traductions des jours de la semaine en anglais et en allemand
Le mot "lundi" se traduit par "monday" en anglais et par "Montag" en allemand
Le mot "mardi" se traduit par "tuesday" en anglais et par "Dienstag" en allemand
Le mot "mercredi" se traduit par "wednesday" en anglais et par "Mittwoch" en allemand
Le mot "jeudi" se traduit par "thursday" en anglais et par "Donnerstag" en allemand
Le mot "vendredi" se traduit par "friday" en anglais et par "Freitag" en allemand
Le mot "samedi" se traduit par "saturday" en anglais et par "Samstag" en allemand
Le mot "dimanche" se traduit par "sunday" en anglais et par "Sonntag" en allemand
```
Compléter le programme ci-dessous :
%% Cell type:code id: tags:
``` python
# Exercice : traduction des jours de la semaine
jours = ["lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi", "dimanche"]
days = ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"]
tage = ["Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag"]
# à compléter
print("Affichage des traductions des jours de la semaine en anglais et en allemand")
# à compléter
```
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment