O Estudante se torna o professor 8/9


Alguem ajuda, não consigo resolver esse problema

Please furnish the actual code so we can copy and run it. The image is okay for some information, but woefully lacking in user-friendliness. Thank you.

Translated using Google Translate:

Por favor, forneça o código real para que possamos copiar e executá-lo. 
A imagem é tudo bem para algumas informações, mas lamentavelmente 
carente de facilidade de uso. Obrigado.

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

Adicione sua funcao abaixo!

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

def get_average(student):
homework = 0.1 * average(student[“homework”])
quizzes = 0.3 * average(student[“quizzes”])
tests = 0.6 * average(student[“tests”])
return homework + quizzes + 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 students:
get_average(student)
results.append(get_average(student))
return average(results)

Eu tenho isso escrito, deveria estar bem mas ele fica dando o erro “Oops, tente outra vez. get_class_average([alice, lloyd]) retornou 91.15 em vez de 85.85 como esperado”

2 Likes

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

Adicione sua funcao abaixo!

def average(numbers):
a = len(numbers)
total = float(sum(numbers))
return total / a
def get_average(student):
homework = average(student[‘homework’])
quizzes = average(student[‘quizzes’])
tests = average(student[‘tests’])
return homework * 0.1 +quizzes * 0.3 + tests * 0.6
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 students in students:
nota = get_average(students)
results.append(nota)
return results

Esse é o codigo. Aparenta estar certo, mais está dando erro.

Olá, perdi um bom tempo nesta questão também. Creio que você deve ler e reler o item 4 das instruções novamente para um melhor entendimento do que está sendo pedido. Em minha opinião o que o item está pedindo está meio confuso e isso dificulta a resolução da atividade. Não vou dar a resposta porque julgo ser um erro de interpretação da questão e não um bug.

Should read,

for student in students:

Também não consigo avançar esse modulo. Alguém reconhece o erro no meu código ?

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

Indentation on return is two levels when it should be one. Line it up with for.

Google Translate

Recuo em return é dois níveis, quando deveria ser um. Alinhá-lo com o for.

1 Like

Eu perdi muito tempo tentando resolver e o problema na verdade é como está escrito o item 4, estou usando em português o site não sei se está claro em inglês. Depois de ler o comentário de uma pessoa aqui, eu consegui achar o que faltava. Era a chamada a função average com usando a variável results!
Como não curti perder tanto tempo com algo tão bobo pelo enunciado mal escrito(traduzido) envio aqui a solução. Não creio que enviar essa solução vai atrapalhar o aprendizado de ninguém.

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

O meu ta exatamente igual ao teu, ta dando o mesmo erro :sweat:

Obrigado! perdi um tempão, nessa quentão por causa da identação de return :joy:
Tava colocando ele dentro do laço.