[英]how to take the average of grades of a student class in student.py
我有一個名為Student的python class
,其中包括變量和方法。
每個學生都有姓名,年齡和成績列表。
我有一個AVGofGrades()
方法,它獲取成績列表並返回平均值。
我不知道如何創建一個函數來獲取學生對象的此成績列表,並循環遍歷以返回平均值。
到目前為止,我有這個:
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
方法中傳遞任何內容,因為您將在創建Student對象時提供所需的所有參數。
您的AVGofGrades
可以如下:
def AVGofGrades(self):
return sum(self.stdGrade)/len(self.stdGrade)
現在,您可以創建該類的實例並獲取AVGofGrades,如下所示:
std1 = Student("georges", 17, 80,23,50,34,80,78)
print(std1.AVGofGrades())
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.