在Python中获取函数的平均值

2024-04-26 07:00:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在努力学习Python,但我被困住了。一切都很顺利,直到最后一个函数是:

def get_class_average(students): 

到那时为止一切都很好,但是在最后一个函数中,我不知道如何使它工作。我试图得到每个学生的平均值,然后计算这些平均值的平均值,换句话说就是“类平均值”,所以,我只想知道最后一个函数的答案,而不想更改最后一个函数之前的任何函数:

lloyd = {
    "name": "Lloyd",
    "homework": [90.0, 97.0, 75.0, 92.0],
    "quizzes": [88.0, 40.0, 94.0],
    "tests": [75.0, 90.0]
}
alice = {
    "name": "Alice",
    "homework": [100.0, 92.0, 98.0, 100.0],
    "quizzes": [82.0, 83.0, 91.0],
    "tests": [89.0, 97.0]
}
tyler = {
    "name": "Tyler",
    "homework": [0.0, 87.0, 75.0, 22.0],
    "quizzes": [0.0, 75.0, 78.0],
    "tests": [100.0, 100.0]
}



def average(numbers):
       total = sum(numbers)
       return float(total) / len(numbers)


def get_average(student):
       homework = average(student["homework"]) 
       quizzes = average(student["quizzes"]) 
       tests = average(student["tests"]) 
       return 0.1 * average(student["homework"]) + 0.3 * average(student["quizzes"])    +     0.6 * average(student["tests"])

def get_letter_grade(score):
       if score >= 90:
              return "A"
       elif score >= 80:
              return "B"         
       elif score >= 70:
              return "C"
       elif score >= 60:
              return "D"
       else:
              return "F"

def get_class_average(students):
       results = []
       for student in results:
              get_average(student)
              results.append(student)
              average(student)
              return results

students = [lloyd,alice,tyler]

print get_class_average(students)

我终于想出了解决这个问题的办法。所以,我只想在下面发布最后一个函数的正确代码,get_class_average(students)。现在它工作了:

def get_class_average(students):
       results = []
       for each in students:
              studentavg = float(get_average(each))
              results.append(studentavg)
       return average(results)

students = [lloyd,alice,tyler]

print get_class_average(students)

Tags: 函数getreturndeftestsstudentresultsclass