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
Goupix
qui mesure 60 cm et pèse 10 kg. - Completer la fonction
plus_grand
qui 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
calendrier
qui prend en paramètre un dictionnaire constitué d'entréesnom: (jour, mois, année)
commedates
et 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_jeune
qui 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}