diff --git a/main.py b/main.py index 4c44759..68b7275 100644 --- a/main.py +++ b/main.py @@ -29,8 +29,11 @@ try: elif input_or_output == "output": _subject = user_input[1] subject_get = subject.get_subject(subjects, _subject) - user_IO.user_output(subject_get.return_average_subject) + user_IO.user_output(subject_get.name, subject_get.return_grade_categories(), + [subject_get.return_average_of_category(i) for i in subject_get.return_grade_categories()], + subject_get.return_average_of_subject()) raise SystemError except Exception as e: print('ERROR' + str(e)) + raise diff --git a/subject.py b/subject.py index f2454a5..818afb7 100644 --- a/subject.py +++ b/subject.py @@ -18,17 +18,18 @@ class Subject: return self.grades[category][0] def return_grade_categories(self): # Return all categories - return [i for i in self.grades] + return self.grades def return_average_of_category(self, category): # Return average of one categorie - return sum(self.grades[category][0]) / len(self.grades[category][0]) + _list = [int(i.grade) for i in self.grades[category][0]] + return sum(_list) / len(self.grades[category][0]) def return_average_of_subject(self): rating_sum = 0 grade_sum = 0 for i in self.grades: rating_sum += self.grades[i][1] - grade_sum += self.return_average_of_category(i) + grade_sum += self.return_average_of_category(i)*self.grades[i][1] return grade_sum / rating_sum diff --git a/user_IO.py b/user_IO.py index 42a61d5..d0dd6f9 100644 --- a/user_IO.py +++ b/user_IO.py @@ -38,7 +38,7 @@ def user_output(subject, categories, average, average_subject): for counter, category in enumerate(categories): print("The average in {} is {} with these grades:".format(category, average[counter])) string = "" - for grade in categories[category]: - string += str(grade) + ", " + for grade in categories[category][0]: + string += str(grade.grade) + ", " print(string + "\n") - print("The average of {} is {}.".format(subject, average_subject)) + print("The average of {} is {}.".format(subject, average_subject))