I’ve created a class named
StudentInfo which will get the name of the student, grade, and the age.
For adding those info in a list I’ve created a list named
student and then append those info in that list.
Now I want to find the average of those students’ grades, so I’ve created a function
How do I total the sum of the grade of n number of students and print it?
For adding the marks alone I’ve called the index of particular and then the student’s grade.
Instead of this how can I add all the students grade and find the average?
Here’s the code:
class StudentInfo: def __init__(self,name,age,grade): self.studentname = name self.studentage = age self.studentgrade = grade def name(self): return self.studentname def age(self): return self.studentage def grade_1(self): return self.studentgrade class Course: def __init__(self,name,maxstudents): self.nameofcourse = name self.maxstudents = maxstudents self.student =  def add_student(self,studentinfo): return self.student.append(studentinfo) def get_average(self): avg = (self.student.studentgrade + self.student.studentgrade + self.student.studentgrade)/len(self.student) return avg a = StudentInfo('karthi',16,100) a2 = StudentInfo('lol',16,99) a3 = StudentInfo('oo',16,90) b = Course('cs',3) b.add_student(a) b.add_student(a2) b.add_student(a3) print(b.get_average()) print(b.student.studentname)
You could use for loops for that.
def get_sum(self): self.sum = 0 for student in self.student: self.sum += student.studentgrade print(self.sum)
Also If you want to get the average of N Number of students you can later just devide the sum throught the amount of students
self.avg = self.sum/len(self.student)
Rewrite get_average() as:
def get_average(self): if self.student: return sum(s.studentgrade for s in self.student) / len(self.student)
The function will implicitly return None if the student list is empty