Student Becomes Teacher: 9/9 Correct Output, But Still an Error?


#1

https://www.codecademy.com/courses/learn-python/lessons/student-becomes-the-teacher/exercises/how-is-everybody-doing-?action=lesson_resume

My program gives the correct output with no errors of:

B
8.55
B

BUT still there is an error message saying: “One of the following is missing or broken when we tried to use it: alice, lloyd, tyler, students, get_class_average, get_letter_grade”



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 = float(sum(numbers))
	return total / len(numbers)

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

def getlettergrade(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 getclassaverage(students):
	results = []
	for student in students:
		results.append(get_average(student))
		return average(results)

print getlettergrade(get_average(lloyd))
print getclassaverage([lloyd, alice, tyler]) 
print getlettergrade(getclassaverage([lloyd, alice, tyler]))

Can someone PLEASE double check the code and find what has to be added/removed


#2

The lesson wants us to use underscores ( _ ) with our function names, so basically, review how your function names are spelled compared to how the lesson wants them spelled.


Also, reread the 1st instruction, we need to use students as our argument, but I don’t see where you defined students anywhere.


#3

So I have added students and added the proper underscores according to the lesson’s guidelines, but yet another error has now occured:
image


#4

That error means your code is unindented and it should match the same indentation level as some of your code, how do we fix that? :wink:

But, screenshots make it hard for me to be able to help you.


#5

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

#6

Seems that it has been fixed now that I tried tinkering with it again. :wink:


#7

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