def calculateGrade(mark): if mark >= 90: return ("Ex",10) elif mark >= 80: return ("A",9) elif mark >= 70: return ("B",8) elif mark >= 60: return ("C",7) elif mark >= 50: return ("D",6) elif mark >= 40: return ("P",5) else: return ("F",0) class Student: def __init__(self): self.name = "" self.marks = [] self.average = 0 self.grade = [] self.credit = [] def setName(self, name): self.name = name def setMarks(self,marks): self.marks = marks def setCredits(self,credit): self.credit = credit def changeMarks(self, subject, mark): if subject >=1 and subject <= len(self.marks): self.marks[subject] = mark else: print("Subject not found!!!") def averageMarks(self): total = 0 subjects = len(self.marks) if subjects == 0: return 0 for mark in self.marks: total = total + mark self.average = total/subjects return self.average def grades(self): for mark in self.marks: self.grade.append(calculateGrade(mark)) return self.grade def SGPA(self): sgpa = 0 totalCredit = 0 for i in range(0,len(self.credit)): sgpa = sgpa + (self.credit[i] * self.grade[i][1]) totalCredit = totalCredit + self.credit[i] if totalCredit == 0: return 0 return sgpa/totalCredit def printInfo(self): print("Name:",self.name) print("Average Marks:",self.average) name = input("Enter the name of the student: ") n = int(input("Enter the number of subjects: ")) print("Enter the marks for each subject") marks = [] for i in range(0,n): a = int(input(f"Enter the mark for subject {i+1}: ")) marks.append(a) print("Enter the credit for each subject") credit = [] for i in range(0,n): a = int(input(f"Enter the credit for subject {i+1}: ")) credit.append(a) student1 = Student() student1.setName(name) student1.setMarks(marks) student1.setCredits(credit) print(f"The average marks obtained by {student1.name} is {student1.averageMarks()}") print(f"The grades obtained by {student1.name} in each subject") Grade = student1.grades() sbj = 1 for grade,gradePoint in Grade: print(f"Subject {sbj}: [ Grade: {grade}, Grade Point: {gradePoint} ]") sbj = sbj + 1 print(f"SGPA: {student1.SGPA()}") student1.printInfo()