Code returns good in compiler, but doesn't complete lesson?


#1

def get_class_average(students):
    results = []
    for student in students:
            get_average(student) 
            results.append(get_average(student))
    return average(results)
print get_class_average([lloyd, alice, tyler])
print get_letter_grade([lloyd, alice, tyler])

the result in compiler is:

83.8666666667
B

but I get this error popping up from codecademy:

Oops, try again. One of the following is missing or broken when we tried to use it: alice, lloyd, tyler, students, get_class_average, get_letter_grade

where am I going wrong? the output appears but I get an error instead the next lesson option?


#2

def get_class_average(students):
    results = []
    for student in students:
            get_average(student) 
            results.append(get_average(student))
    return average(results)
print get_class_average([lloyd, alice, tyler])
print get_letter_grade(get_class_average([lloyd, alice, tyler]))

changed it on last line, still compiler runs with it but I am not clearing to the nest lesson. Same error message?!?!?


#3

please post your full code

It seems your students list from 3. put it together is missing, at least, that is the most common

python is an interpetred language, not a compiled one


#4

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

# Add your function below!
def average(numbers):
    total = sum(numbers) 
    total = float(total)
    total = total / len(numbers)
    return total 

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'

print get_letter_grade(get_average(lloyd))

def get_class_average(students):
    results = []
    for student in students:
            get_average(student) 
            results.append(get_average(student))
    return average(results)
print get_class_average([lloyd, alice, tyler])
print get_letter_grade(get_class_average([lloyd, alice, tyler]))

thanks for looking at it for me!


#5

seems the problem is so common, i already found it? You build a students list in 3. put it together, its missing, and you need it to pass


#6

many thanks, I must have deleted at some point, again, thank you


#7

actually no, it doesn't properly get transfered between one of the exercises


#8

why not, if it's needed to finish?


#9

its a bug, but given this course was already planned to be ported to new learning enviroment at the end of 2016 (which got postponed), bugs are not fixed, though they should fix this


#10

wow, a bug that literally drove bats crazy for an hour... : - \


#11

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.