Informatique

Question

Bonjour j'ai un exercice en python .J'aimerais bien de l'aide.
on veut calculer la moyenne obtenu par un élève au bac suivant ses notes et les coefficients
Les notes obtenues sont données par le dictionnaire suivant :
Notes={"maths" : 11 ," physique" : 8," SVT" : 9}
Les coefficients des matières sont données par le dictionnaire suivant :
Coefficient= {"maths" : 5 ," physique" : 7," SVT" : 6}
1) Ecrire le programme qui réalise ce calcul
2) Comment modifier le programme pour que l’utilisateur propose ses matières ainsi que ses coefficients .
merci de votre aide.

1 Réponse

  • Réponse :

    1)

    Notes={"maths" : 11 ," physique" : 8," SVT" : 9}

    Coefficient= {"maths" : 5 ," physique" : 7," SVT" : 6}

    Addition = 0

    nbrNotes = 0

    for Matiere, Note in Notes.items():

       if Matiere in Coefficient:

           Addition = (Note * Coefficient[Matiere]) + Addition

           nbrNotes =  nbrNotes + Coefficient[Matiere]

       else:

           Addition = Note + Addition

           nbrNotes = nbrNotes + 1

    print("La moyenne est: ",round(Addition/nbrNotes, 2))

    2) On créé une boucle tant que l'utilisateur veut ajouté une matière, et à chaque ajout, on mets la note et coefficient dans les dictionnaires Notes et Coefficient avec pour index le nom de la matière

    Notes={}

    Coefficient={}

    finajout = 0  

    while(finajout == 0):

       tmpMatiere = input("Nom de la Matière: ")

       tmpNote = int(input("Note: "))

       tmpCoefficient = int(input("Coéfficient: "))

       Notes[tmpMatiere] = tmpNote

       Coefficient[tmpMatiere] = tmpCoefficient  

       reponse = input("Faut-il ajouté ou modifié une matière ? (Oui/Non): ")

       if reponse.lower() == "non":

           finajout = 1

    Addition = 0

    nbrNotes = 0

    for Matiere, Note in Notes.items():

       if Matiere in Coefficient:

           Addition = (Note * Coefficient[Matiere]) + Addition

           nbrNotes =  nbrNotes + Coefficient[Matiere]

       else:

           Addition = Note + Addition

           nbrNotes = nbrNotes + 1

    print("La moyenne est: ",round(Addition/nbrNotes, 2))

    Explications :

    J'ai tout mis sur les deux images avec une démonstration.

    Enfin, je précise quand même que dans la boucle, j'ai mis "ajouté ou modifié" car dans la situation ou l'on écrira le même nom de matière, mais avec une note et un coefficient différent, on sera dans un cas d'overwrite, la note et le coefficient seront remplacés par celui que tu auras redéfinis.

    Image en pièce jointe de la réponse SmartMind
    Image en pièce jointe de la réponse SmartMind

Autres questions