Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在student.py中计算学生班级的平均成绩_Python_List_Oop - Fatal编程技术网

Python 如何在student.py中计算学生班级的平均成绩

Python 如何在student.py中计算学生班级的平均成绩,python,list,oop,Python,List,Oop,我有一个名为student的python类,它包含变量和方法 每个学生都有姓名、年龄和成绩表 我有一个方法AVGofGrades(),它获取成绩列表并返回平均值 我不知道如何创建一个函数,从student对象获取这个成绩列表,并循环通过它返回平均值 到目前为止,我有: class student(): def __init__(self,name,age, *grades): self.stdName=name self.stdAge = age

我有一个名为student的python
类,它包含变量和方法

每个学生都有姓名、年龄和成绩表

我有一个方法
AVGofGrades()
,它获取成绩列表并返回平均值

我不知道如何创建一个函数,从student对象获取这个成绩列表,并循环通过它返回平均值

到目前为止,我有:

class student():
    def __init__(self,name,age, *grades):
        self.stdName=name
        self.stdAge = age
        self.stdGrade = grades


    def getName(self):
        return self.stdName

    def setName(self,Name):
        self.stdName = Name


    def getAge(self):
        return self.stdAge

    def setAge(self, Age):
        self.stdAge = Age

    def getGrade(self):

        gradeLevel = None

        if AVGofGrades(self.stdGrade) >=20:
            gradeLevel =  "A"
        elif self.stdGrade >=18:
            gradeLevel =  "B"
        elif self.stdGrade >=15:
            gradeLevel = "C"
        else:
            gradeLevel = "F"

        print("the student {0}, have a grade {1}".format(self.stdName, gradeLevel))

    def setGrade(self,*Grades):
        self.stdGrade = Grades

    def AVGofGrades(self, *student):
        result = 0
        for i in student:
            student[2]



std1 = student("georges", 17, 80,23,50,34,80,78)

这是一个简单的数学表达式:

    def AVGofGrades(self, *student):
        return sum(student) / len(student)

您应该将其命名为
self.AVGofGrades()
,而不仅仅是
AVGofGrades()

您已经在
self.stdGrade

因此,您不需要在方法
AVGofGrades
中传递任何内容,因为您提供了创建学生对象时所需的所有参数

您的
AVGofGrades
可以如下所示:

def AVGofGrades(self):
    return sum(self.stdGrade)/len(self.stdGrade)
std1 = Student("georges", 17, 80,23,50,34,80,78)
print(std1.AVGofGrades())
现在,您可以创建该类的实例,并按如下方式获取AVGofGrades:

def AVGofGrades(self):
    return sum(self.stdGrade)/len(self.stdGrade)
std1 = Student("georges", 17, 80,23,50,34,80,78)
print(std1.AVGofGrades())

*student包括姓名、年龄、成绩列表,其中前2个参数是姓名,第三个参数是年龄。如果AVGofGrades(self.stdGrade)>=20:
,则在该调用中,只有成绩通过。要跳过前两个参数,请使用
返回和(student[2:])/len(student[2:])