# -*- coding:utf-8 -*-

__nom_fichier__ = "eleve"
__author__ = "tinet1"
__date__ = "mars 2018"

"""
Exercices - Fichier

Gestion de scolarité

classe Eleve
"""

class Eleve:
    
    def __init__(self, nom, lnotes = None):
        """
        Méthode constructeur.
        :param nom: Nom de l'élève
        :param lnotes: Liste de notes (nombres)
        """
        self.nom_ = nom

        # Liste par défaut => liste vide
        if lnotes == None:
            self.notes_ = []
        else:
            self.notes_ = lnotes
            
    def getNom(self):
        """
        Méthode accesseur
        :return: Nom de l'élève
        """
        return self.nom_
        
    def getNotes(self):
        """
        Méthode accesseur
        :return: Liste des notes de l'élève
        """
        return self.notes_
        
    def setNom(self, nom):
        """
        Méthode mutateur
        :param nom: Nouveau nom de l'élève
        :return: None
        """
        self.nom_ = nom
        
    def setNotes(self, lnotes):
        """
        Méthode mutateur
        :param lnotes: Nouvelle liste de notes de l'élève
        :return: None
        """
        self.notes_ = lnotes
        
    def moyenne(self, coefficients):
        """
        :param coefficients: Liste des coefficients associés aux notes
        :return: Moyenne pondérée des notes de l'élève
        """
        # Il n'y a pas de notes
        if len(self.notes_) == 0:
            return None
            
        somme = 0
        scoeff = 0
        
        for i in range(len(self.notes_)):
            somme += self.notes_[i]*coefficients[i]
            scoeff += coefficients[i]

        return somme/scoeff
        


if __name__ == "__main__":
    
    # Validation
    
    toto = Eleve("Toto",[6,8,10,4])
    print(toto.moyenne([2,1,1,2])) # 6.33
