Part of the Whole


#1

LINK(Click me)

ERROR

  • get_class_average([alice, lloyd]) returned 91.15 instead of 85.85 as expected

Code

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]
}


# Compute average of numbers(marks)
def average(numbers):
  return float(sum(numbers)) / len(numbers)


# Compute average for each student
def get_average(student):
  homework = average(student['homework']) * 0.1
  quizzes = average(student['quizzes']) * 0.3
  tests = average(student['tests']) * 0.6
  
  return homework + quizzes + tests
  
  
# Compute grades
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'
  
# Get grades
get_letter_grade(get_average(lloyd))


# Compute class average
def get_class_average(class_list):
  results = []
  
  for student in class_list:
    results.append(get_average(student))
    
    return average(results)

#2

Check your indentation, especially return statements within loops


#4