Aller au contenu

Dictionnaires - 2ème activité

Exercice 1

Vous allez travailler sur cet exercice donné au bac mais en utilisant votre ordinateur :

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.

1)
a) Que renvoie l'instruction flotte[26] ?
b) Que renvoie l'instruction flotte[80]["etat"] ?
c) Que renvoie l'instruction fflotte[99]["etat"] ?

2) Voici le script d'une fonction :

def proposition(choix):
    for v in flotte:
        if flotte[v]["type"] == choix and flotte[v]["etat"] == 1:
            return flotte[v]["station"]

a) Quelles sont les valeurs possibles de la variable choix ?
b) Expliquer ce que renvoie la fonction lorsque l'on choisit comme paramètre l'une des valeurs possibles de la variable choix.

3)
a) Écrire un script en langage Python qui affiche les identifiants (id_velo) de tous les vélos disponibles à la station "Citadelle".
b) É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.

Exercice 2

Cette exercice est très facile, sachant que vous pouvez vous aider de Google. Si vous rencontrez des difficultés, vous devez absolument revoir les bases de Python et vous entraîner à résoudre des problèmes en programmant (me demander des activités à faire à la maison si besoin).

Créez une fonction moyenne(eleves_classe) qui calcule la moyenne de la classe :

eleves_classe = {
    "john": 11,
    "roberto":12,
    "anna": 20,
    "ali":16,
    "rachidamaispasdati": 13,
    "mbappe": 15
}

Exercice 3

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