Le but de ce mini projet et de créer un système de gestion de note ( type ecoledirecte) automatique qui permettra à l'utilisateur d'entrer des notes, de calculer la moyenne, d'affecter une appréciation selon la moyenne ,d'insérer une interface graphique...
Le code ci-dessous est un exemple de correction, il existe différentes manières de résoudre les problèmes😉
def notes():
""" fonction notes qui demande à l’utilisateur si il veut entrer une note puis demande de la saisir.
précondition: fonction sans paramètre
Postcondition: la fonction renvoie une liste de tuples"""
notes=[]
rep="o"
while rep=="o":
coef=int(input("quel est le coefficient"))
note=int(input("entrez votre note"))
note_c=(note,coef)
notes.append((note_c))
rep=input("si vous souhaitez entrer une nouvelle note tapez o sinon tapez n")
return notes
def moy(L):
"""fonction moy qui calcul la moyenne d'une liste de notes
précondition: L doit être du type list contenant des tuples
postcondition: la fonction renvoie une variable de type float
"""
somme=0
coeff=0
for i in range(len(L)):
somme+=L[i][0]*L[i][1]
coeff+=L[i][1]
return somme/coeff
nsi={'Yaelle': [], 'Valentin':[], 'Matheo':[], 'Jade': [],'Léa':[],'Melvin':[],'Vinh':[],'Timéo':[],'Robin':[],'Camille':[],'Malo':[],'Mael':[],'Sacha':[],'Hermione':[],'Heloise':[],'Tanguy':[],'Aurore':[],'Jeremy':[],'Esteban':[],}
imaginons que nous disposons d'un dictionnaire contenant la liste d'élèves d'un groupe de NSI par exemple😉.
Vous devez modifier la fonction notes qui prendra en paramètre le dictionnaire d'élève ( nsi ) permettant d'affecter les notes saisies par l'utilisateur à un élève précis.
Pensez à vérifier que l'élève est bien présent dans le groupe
Pensez à renseigner les docstrings et insérer des asserts
Vous pouvez essayer de réfléchir à améliorer notre façon de "boucler", il faudrait limiter l'utilisateur à deux réponses o ou n .
Vous pouvez également proposer des évolutions ( notation, interface...). Nous verrons par la suite, la modification de la procédure de l'utilisateur sera modifiée mais ça ce sera dans l'épisode CSV😉