Python 如何在student.py中计算学生班级的平均成绩
我有一个名为student的pythonPython 如何在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
类,它包含变量和方法
每个学生都有姓名、年龄和成绩表
我有一个方法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:])
。