Découvrez les solutions à vos questions sur Laurentvidal.fr, la plateforme de Q&R la plus fiable et rapide. Obtenez des réponses détaillées et précises à vos questions grâce à une communauté dévouée d'experts sur notre plateforme de questions-réponses. Obtenez des réponses détaillées et précises à vos questions grâce à une communauté d'experts dévoués sur notre plateforme de questions-réponses.

Bonjour ! J’ai vraiment du mal pour cette exercice.
Serait-il possible de m’aider ?

On souhaite étudier les notes des élèves d'une classe en précisant le nom de la matière concernée par la note. On propose la modélisation suivante :
notes = {
'Enzo' : ('maths', 3),
'Emma' : ('maths', 16),
'Lucas' : ('NSI', 3),
'Manon' : ('NSI', 13)}

1) Quel est le type de notes ?
2) Que vaut l'expression notes[2] ?
3) Écrire ce dictionnaire dans un programme python et écrire l'instruction permettant de rajouter que Farid a eu 15 en NSI.
4) On veut connaitre le nom de tous les élèves ayant eu une note inférieure à 15. Écrire un programme qui affiche la réponse voulue.
5) On veut écrire une fonction EleveMoinsBon() qui prend un dictionnaire en paramètre et qui renvoie les noms des élèves ayant eu la moins bonne note. Tester votre fonction sur le dictionnaire « notes »
6) On veut écrire une fonction TriParMatiere() qui prend en paramètre un dictionnaire et qui renvoie un dictionnaire dont les clés sont les noms des matières et les valeurs la liste des notes obtenues par les élèves dans chaque matière.
Ex : si on suppose que notes = {'Enzo' : ('maths', 3), 'Emma' : ('maths', 16), 'Lucas' : ('NSI, 3), 'Manon' : (NSI, 13), 'Farid' : ('NSI', 15)}
TriParMatiere(notes) affichera {'maths' : [3, 16], 'NSI' : [3, 13, 15]}

Merci d’avance !

Sagot :

Bonjour,

notes = {

   'Enzo' : ('maths', 3),

   'Emma' : ('maths', 16),

   'Lucas' : ('NSI', 3),

   'Manon' : ('NSI', 13)}

#Question 1

print(type(notes)) => <class dict>, c'est donc un dictionnaire.

#Question 2

print(notes[2]) => Erreur, on doit utiliser le nom des clés pour parcourir un dictionnaire. Un dictionnaire n'a pas un ordre précis donc la position '2' n'a aucun sens.

#Question 3

notes['Farid'] = ('NSI', 15)

#Question 4

for nom, valeur in notes.items(): #On aura fait tous les parcours possibles sur tes 3 devoirs, .keys() pour récupérer les clés, .values() pour récupérer les valeurs et .items() pour récupérer les deux en même temps.

   if valeur[1] <= 15:

       print(nom)

#Question 5

def EleveMoinsBon(dictionnaire):

   mini = 20

   noms = []

   for nom, valeur in dictionnaire.items():

       if valeur[1] == mini:

           noms.append(nom)

       elif valeur[1] < mini:

           noms = [nom]

           mini = valeur[1]

   return noms

print(EleveMoinsBon(notes)) => ["Enzo", "Lucas"]

#Question 6

def TriParMatiere(dictionnaire):

   dico = {}

   for valeur in dictionnaire.values():

       try:

           dico[valeur[0]].append(valeur[1])

       except:

           dico[valeur[0]] = [valeur[1]]

   return dico

print(TriParMatiere(notes)) => {'maths': [3, 16], 'NSI': [3, 13, 15]}

Bonne journée.

Nous apprécions votre temps. Revenez nous voir pour des réponses fiables à toutes vos questions. Merci de votre visite. Nous nous engageons à fournir les meilleures informations disponibles. Revenez quand vous voulez pour plus. Nous sommes ravis de répondre à vos questions sur Laurentvidal.fr. N'oubliez pas de revenir pour en savoir plus.