Bonjour à tous/toutes,
Ayant du temps de libre entre mes études, je me suis mis à apprendre le langage python (bien que peu en rapport avec mes études, j'ai toujours voulu apprendre un langage de programmation)
Je voulais donc tester de faire un programme calculant une moyenne pondérée : J'ai réussi à faire un code, mais il est d'une part imparfait, et d'autre part horriblement long. Je voudrais savoir si vous auriez des idées d'améliorations / modifications pour rendre ce code meilleur.
Dans mon cas, les matières ont un coefficient, ainsi que les notes : Il y à en réalité 8 matières différentes, je ne donne que le code pour la première matière, la CGE. J'ai élaboré mon code de la façon suivante : saisie de toute les notes dans l'ordre, ainsi que des coefficients. Si le nombre de coefficients est différent de celui des notes, un message d'erreur apparaît. Selon le nombre de note, la moyenne est calculée selon les notes et les coefficients saisies (la note [0] correspondant au coefficient [0] etc).
Le principal défaut de ce code est qu'il n'est pas "automatisé" : si je prendre 5 notes, la moyenne ne peut pas se calculer. Auriez vous une idée pour remplaçer les if/elif ou une structure différente à proposer ?
Merci d'avance pour vos réponses
Edy
Voici le code effectué sur PyCharm :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 f __name__ == '__main__': # Saisie des notes de CGE marks_CGE = input("Insérer les notes de CGE").split("-") marks_length = len(marks_CGE) print("Vous avez saisi", marks_length, " notes") # Saisie des coefficients de CGE coef_CGE = input("Insérer les coefficients de CGE").split("-") coef_length_CGE = len(coef_CGE) print("Vous avez saisi,", coef_length_CGE, "coefficients") # Verification que tous les notes et coefficients sont présents. if len(marks_CGE) != len(coef_CGE): print("Les champs ne correspondent pas, réésayer !") else: print("Aucune erreur détectée, démarrage du calcul...") # Calcul de la moyenne de CGE si il n'y à qu'une note if marks_length == 1: AVERAGE_CGE = (float(marks_CGE[0])*float(marks_CGE[0])) print(AVERAGE_CGE) # Calcul de la moyenne de CGE si il y a 2 notes elif marks_length == 2: AVERAGE_CGE = (float(marks_CGE[0]) * float(marks_CGE[0]))+(float(marks_CGE[1])*float(marks_CGE[1])) print(AVERAGE_CGE) # Calcul de la moyenne de CGE si il y a 3 notes elif marks_length == 3: AVERAGE_CGE = ((float(marks_CGE[0])*float(coef_CGE[0]))+(float(marks_CGE[1])*float(coef_CGE[1]))+(float(marks_CGE[2])*float(coef_CGE[2])))/((float(coef_CGE[0]))+(float(coef_CGE[1]))+(float(coef_CGE[2]))) print(AVERAGE_CGE)
Partager