Advertisement
SimeonTs

SUPyF2 Objects/Classes-Exericse - 05. Class

Oct 19th, 2019
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.01 KB | None | 0 0
  1. """
  2. Objects and Classes - Exericse
  3. Check your code: https://judge.softuni.bg/Contests/Practice/Index/1734#4
  4.  
  5. SUPyF2 Objects/Classes-Exericse - 05. Class
  6.  
  7. Problem:
  8. Create a class Class. The __init__ method should receive the name of the class.
  9. It should also have 2 lists (students and grades). Create a class attribute __students_count equal to 22.
  10. The class should also have 3 additional methods:
  11. • add_student(name, grade) - if there is space in the class, add the student and the grade in the two lists
  12. • get_average_grade() - returns the average of all existing grades formatted to the second decimal point
  13. • __repr__ - returns the string (single line):
  14. "The students in {class_name}: {students}. Average grade: {get_average_grade()}". The students must be seperated by ", "
  15.  
  16. Example:
  17. Test Code:
  18. a_class = Class("11B")
  19. a_class.add_student("Peter", 4.80)
  20. a_class.add_student("George", 6.00)
  21. a_class.add_student("Amy", 3.50)
  22. print(a_class)
  23.  
  24. Output:
  25. The students in 11B: Peter, George, Amy. Average grade: 4.77
  26. """
  27.  
  28.  
  29. class Class:
  30.  
  31.     def __init__(self, name: str):
  32.         self.name = name
  33.         self.students = []
  34.         self.grades = []
  35.         self.__students_count = 22
  36.  
  37.     def add_student(self, name: str, grade: float):
  38.         if len(self.students) < self.__students_count:
  39.             self.students += [name]
  40.             self.grades += [grade]
  41.  
  42.     def get_average_grade(self):
  43.         return sum(self.grades) / len(self.students)
  44.  
  45.     def __repr__(self):
  46.         return f"The students in {self.name}: {', '.join(self.students)}. Average grade: {self.get_average_grade()}"
  47.  
  48.  
  49. a_class = Class("11B")
  50.  
  51. a_class.add_student("Peter", 4.80)
  52. a_class.add_student("George", 6.00)
  53. a_class.add_student("Amy2", 3.50)
  54. a_class.add_student("Peter3", 4.80)
  55. a_class.add_student("George4", 6.00)
  56. a_class.add_student("Amy5", 3.50)
  57. print(a_class)
  58.  
  59. b_class = Class("11B")
  60. b_class.add_student("Peter", 4.80)
  61. b_class.add_student("George", 6.00)
  62. b_class.add_student("Amy", 3.50)
  63. print(b_class)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement