Exercices sur les dictionnaires¶
Admis ou pas
On considère le dictionnaire ci-dessous dont les clés sont les noms des élèves et les valeurs des clés sont les moyennes générales obtenues en passant l'examen final.
etudiants = {"etudiant_1" : 13 , "etudiant_2" : 17 , "etudiant_3" : 9 , "etudiant_4" : 15 , 
"etudiant_5" : 8 , "etudiant_6" : 14 , "etudiant_7" : 16 , "etudiant_8" : 12 , 
"etudiant_9" : 13 , "etudiant_10" : 15 , "etudiant_11" : 14 , "etudiant_112" : 9 , 
"etudiant_13" : 10 , "etudiant_14" : 12 , "etudiant_15" : 13 , "etudiant_16" : 7 ,
"etudiant_17" : 12 , "etudiant_18" : 15 , "etudiant_19" : 9 , "etudiant_20" : 17 }
etudiantAdmis et etudiantNonAdm, l'admission étant effective si l'étudiant à une note supérieure ou égale à 10.
Pokemons
On modélise des informations (nom, taille et poids) sur des Pokémons de la façon suivante:
exemple_pokemons = {
'Bulbizarre': (70, 7),
'Herbizarre': (100, 13),
'Abo': (200, 7),
'Jungko': (170, 52)
}
Bulbizarre est un pokémon qui mesure 70 cm et pèse 7 kg.
- Ajouter le pokémon Goupixqui mesure 60 cm et pèse 10 kg.
- Completer la fonction plus_grandqui prend en paramètre un dictionnaire et qui renvoie un tuple contenant le nom du pokemon le plus grand et sa taille.🐍 Script Pythondef plus_grand(pokemons: dict) -> tuple: nom_plus_grand = '' taille_max = 0 for ... in pokemons. : if ...> taille_max: nom_plus_grand = ... taille_max = ... return ....
Personnalités
Voici un dictionnaire dates dont les clés sont des prénoms au format str et les valeurs des dates de naissance au format tuple.
dates = {
    "Alan": (23, 6, 1912),
    "Grace": (9, 12, 1906),
    "Linus": (28, 12, 1969),
    "Guido": (31, 1, 1956),
    "Ada": (10, 12, 1815),
    "Tim": (8, 6, 1955),
    "Dennis": (9, 9, 1941),
    "Hedy": (9, 11, 1914),
    "Steve": (24, 2, 1955)
    }
- 
Ajouter les deux entrées suivantes: Margaret, née le 17 août 1936 et John, né le 28 décembre 1903. 
- 
Écrire une fonction calendrierqui prend en paramètre un dictionnaire constitué d'entréesnom: (jour, mois, année)commedateset qui renvoie un dictionnaire dont les clés sont les mois de l'année et les valeurs les listes des noms nés ce mois-là. Par exemple,calendrier(dates)doit renvoyer un dictionnaire contenant l'entrée"juin": ["Alan", "Tim"].
- 
Écrire une fonction plus_jeunequi renvoie le nom de la personne la plus jeune du dictionnaire.
Scrabble
On dispose du dictionnaire ci-dessous, dans lequel chaque lettre de l'alphabet (en majuscules) est associé au nombre de points qui lui est attribué au scrabble.
scrabble = {'A': 1, 'B': 3, 'C': 3, 'D': 2, 'E': 1, 'F': 4, 'G': 2, 'H': 4,
        'I': 1, 'J': 8, 'K': 10, 'L': 1, 'M': 2, 'N': 1, 'O': 1,
        'P': 3, 'Q': 8, 'R': 1, 'S': 1, 'T': 1, 'U': 1, 'V': 4,
        'W': 10, 'X': 10, 'Y': 10, 'Z': 10}
Code Morse
Ci-dessous, un célèbre texte a été écrit en code morse. Décodez le!
| 🐍 Script Python | |
|---|---|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |  | 
Pour coder un texte en morse, on a besoin d'un dictionnaire de correspondance entre les lettres (majuscules) et leurs codes en morse.
Par exemple:
| 🐍 Script Python | |
|---|---|
| 1 |  | 
Ensuite il faut séparer la chaîne de caractères fournie sur les espaces pour obtenir la liste des codes: on utilise la méthode split .
Et enfin, en parcourant cette liste, on construit une nouvelle chaîne de caractères contenant le message décodé (variable accumulatrice).
Recherches extrêmes
Donner des instructions Python qui à partir d'un tableau de nombres tab non vide, renvoie la plus petite et la plus grande valeur du tableau sous la forme d’un dictionnaire à deux clés min et max.
On pourra ensuite définir la fonction min_et_max qui prend en paramètre le tableau et retourne le tuple.
Les tableaux seront représentés sous forme de liste Python.
L’utilisation des fonctions natives min, max et sorted, ainsi que la méthode sort n’est pas        autorisée.
Exemples :
>>> min_et_max([0, 1, 4, 2, -2, 9, 3, 1, 7, 1])
{'min': -2, 'max': 9}
>>> min_et_max([0, 1, 2, 3])
{'min': 0, 'max': 3}
>>> min_et_max([3])
{'min': 3, 'max': 3}
>>> min_et_max([1, 3, 2, 1, 3])
{'min': 1, 'max': 3}
>>> min_et_max([-1, -1, -1, -1, -1])
{'min': -1, 'max': -1}