关于以下Python代码编写的问题

请利用“类和对象”的相关知识,实现如下功能:
1). 创建 Person类,属性有姓名(str型)、年龄(int型)、性别(str型);创建方法 personInfo,打印个人信息
2). 创建 Student类,继承 Person类,属性有学校 college(str型),系部 department(str型),年级 grade(str型);重写父类 personInfo方法,调用父类方法打印个人信息外,将学生的学校、系部、年级信息也打印出来;创建方法 score,实现键盘输入高等数学(math)成绩(float型),探索性数据分析(eda)成绩(float型),英语(en)成绩(float型),并能计算这三门课的总绩点(float型)和平均绩点(float型);创建方法 gpaInfo,打印学生信息(包括姓名、学校、系部、年级)、总绩点以及平均绩点(保留2位小数)。
注:
1). 绩点计算按照学员计算方法。课程学分,高等数学:6学分,探索性数据分析:2学分,英语:1学分。
2). 除上述要求外,实现过程中若有需要,可自行定义其它属性和方法。

img


class Person:
    def __init__(self, name, age, sex):
        self.name = name
        self.age = age
        self.sex = sex

    def personInfo(self):
        print(f'{self.name}, {self.age}, {self.sex}')


class Student(Person):
    def __init__(self, name, age, sex, college, department, grade):
        super().__init__(name, age, sex)
        self.college = college
        self.department = department
        self.grade = grade

    def personInfo(self):
        super().personInfo()
        print(f'{self.college}, {self.department}, {self.grade}')

    def score(self):
        m = int(input('输入高等数学成绩'))
        e = int(input('输入英语成绩'))
        eda = int(input('输入探索性数据分析成绩'))
        self.count = sum([m, e, eda])
        self.avg = round(self.count / 3, 2)

    def gpaInfo(self):
        print(f'总成绩{self.count}, 平均分{self.avg}')