簡體   English   中英

如何獲取student.py中學生班級的平均成績

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM