Tous les TP seront notés.
- Tout TP non rendu avant la fin de la séance sera noté zéro.
- Veuillez mettre clairement vos noms sur votre code source ou noms de fichiers.
Dictionnaires¶
Dans un dictionnaire la clé permet de récupérer rapidement un élément.
Par exemple, si j'ai un dictionnaire avec le prénom des élèves que j'ai associé à leur numéro de téléphone :
Et que je cherche le numéro de téléphone de l'un d'entre eux, par exemple celui de christian, alors je peux le récupérer efficacement de cette manière :Pour ajouter un élément dans le dictionnaire on indique quelle clé (le prénom dans notre cas) on associe à la valeur (le numéro de téléphone dans notre exemple) :
On vient d'ajouter roberto à notre dictionnaire :
contacts = {'abdel' '0155551010', 'christian': '0516526600', 'assa': '0545974500', 'roberto' : '0955551910'}
Exercice 1¶
Créez une fonction moyenne(eleves_classe)
qui calcule et renvoie la moyenne de la classe :
eleves_classe = {
"john": 11,
"roberto":12,
"anna": 20,
"ali":16,
"rachidamaispasdati": 13,
"mbappe": 15
}
Exercice 2¶
Soit deux listes, la première contient des noms de l'élève, la seconde contient les numéros de téléphones. Le \(ième\) indice dans la liste de nom doit être associé au \(ième\) indice dans la liste de téléphone.
Soit ce dictionnaire vide :
Ajouter les contacts riri', 'fifi', 'loulou
au dictionnaire contacts
.
Résultat attendu :
Exercice 3¶
Cet exercice est extrait des épreuves pratiques du baccalauréat.
Sur le réseau social TipTop, on s’intéresse au nombre de « like » des abonnés. Les données sont stockées dans des dictionnaires où les clés sont les pseudos et les valeurs correspondantes sont les nombres de « like » comme ci-dessous :
Écrire une fonction max_dico qui :
Prend en paramètre un dictionnaire dico non vide dont les clés sont des chaînes de caractères et les valeurs associées sont des entiers ;
Renvoie un tuple dont :
- La première valeur est la clé du dictionnaire associée à la valeur maximale ;
- La seconde valeur est la première valeur maximale présente dans le dictionnaire.
>>> max_dico({'Bob': 102, 'Ada': 201, 'Alice': 103, 'Tim': 50})
('Ada', 201)
>>> max_dico({'Alan': 222, 'Ada': 201, 'Eve': 220, 'Tim': 50})
('Alan', 222)
Exercice 4¶
Complétez la fonction alphabet(chaine)
qui prend une chaîne de caractère en paramètre et retourne un dictionnaire dont les clés sont les lettres du mot et les valeurs le nombre d'occurences.
Par exemple pour "nsiii"
alphabet('nsiii')
On devrait obtenir le résultat suivant :
{'n': 1, 's': 1, 'i': 3 }
La fonction à compléter :
chaine = 'nsiii'
def alphabet(chaine):
nb_caracteres = {}
for ... in ...:
if ... :
# Completez
else:
# Completez
return nb_caracteres
Exercice 5¶
Une ville souhaite gérer son parc de vélos en location partagée. L’ensemble de la flotte de vélos est stocké dans une table de données représentée en langage Python par un dictionnaire contenant des associations de type id_velo : dict_velo où id_velo est un nombre entier compris entre 1 et 199 qui correspond à l'identifiant unique du vélo et dict_velo est un dictionnaire dont les clés sont : "type", "etat", "station".
Les valeurs associées aux clés "type", "etat", "station" de dict_velo sont de type chaînes de caractères ou nombre entier :
- "type" : chaîne de caractères qui peut prendre la valeur "electrique" ou "classique"
- "état" : nombre entier qui peut prendre la valeur 1 si le vélo est disponible, 0 si le vélo est en déplacement, -1 si le vélo est en panne
- "station" : chaînes de caractères qui identifient la station où est garé le vélo.
Dans le cas où le vélo est en déplacement ou en panne, "station" correspond à celle où il a été dernièrement stationné.
flotte = {
12 : {"type" : "electrique", "etat" : 1, "station" : "Prefecture"},
80 : {"type" : "classique", "etat" : 0, "station" : "Saint-Leu"},
45 : {"type" : "classique", "etat" : 1, "station" : "Baraban"},
41 : {"type" : "classique", "etat" : -1, "station" : "Citadelle"},
26 : {"type" : "classique", "etat" : 1, "station" : "Coliseum"},
28 : {"type" : "electrique", "etat" : 0, "station" : "Coliseum"},
74 : {"type" : "electrique", "etat" : 1, "station" : "Jacobins"},
13 : {"type" : "classique", "etat" : 0, "station" : "Citadelle"},
83 : {"type" : "classique", "etat" : -1, "station" : "Saint-Leu"},
22 : {"type" : "electrique", "etat" : -1, "station" : "Joffre"}
}
flotte étant une variable globale du programme. Toutes les questions de cet exercice se réfèrent à l'extrait de la table flotte fourni ci-dessus.
- Écrire un script en langage Python qui affiche les identifiants (id_velo) de tous les vélos disponibles à la station "Citadelle".
- Écrire un script en langage Python qui permet d'afficher l'identifiant (id_velo) et la station de tous les vélos électriques qui ne sont pas en panne.