Calcular promedio en "El estudiante se vuelve profesor"


#1

Candela = {
"nombre": "Candela",
"tareas": [90.0, 97.0, 75.0, 92.0],
"pruebas": [88.0, 40.0, 94.0],
"examenes": [75.0, 90.0]
}
Milagros = {
"nombre": "Milagros",
"tareas": [100.0, 92.0, 98.0, 100.0],
"pruebas": [82.0, 83.0, 91.0],
"examenes": [89.0, 97.0]
}
Ramiro = {
"nombre": "Ramiro",
"tareas": [0.0, 87.0, 75.0, 22.0],
"pruebas": [0.0, 75.0, 78.0],
"examenes": [100.0, 100.0]
}

¡Agregá tu función acá abajo!

def promedio(numeros):
total = sum(promedio)
return float(total) / len(numeros)

y me da el error ¡Uy! Probá otra vez. el promedio([3, 0]) dio un error: 'function' object is not iterable


#2

Hola, yo lo hice de esta manera, aunque lo he estado hacienda en ingles:

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

students = [lloyd, alice, tyler]

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

def get_average(student):
homework = average(student["homework"])
print homework
quizzes = average(student["quizzes"])
print quizzes
tests = average(student["quizzes"])
print tests


#3

Me sirvio muchas gracias


#4

En el de "calcula y usa" me da error
candela = {
"nombre": "Candela",
"tareas": [90.0, 97.0, 75.0, 92.0],
"pruebas": [88.0, 40.0, 94.0],
"examenes": [75.0, 90.0]
}
milagros = {
"nombre": "Milagros",
"tareas": [100.0, 92.0, 98.0, 100.0],
"pruebas": [82.0, 83.0, 91.0],
"examenes": [89.0, 97.0]
}
ramiro = {
"nombre": "Ramiro",
"tareas": [0.0, 87.0, 75.0, 22.0],
"pruebas": [0.0, 75.0, 78.0],
"examenes": [100.0, 100.0]
}

¡Agregá tu función acá abajo!

alumnos = [candela, milagros, ramiro]

def promedio(numeros):
total = sum(numeros)
promedio = float(total) / len(numeros)
return promedio

def sacar_promedio(alumno):
tareas = promedio(alumno["tareas"])
print tareas
pruebas = promedio(alumno["pruebas"])
print pruebas
examenes = promedio(alumno["examenes"])
print examenes

¡Uy! Probá otra vez. sacar_promedio(milagros) retornó None en vez de 91.15 esperado


#5

A mí me da el mismo error ¿has conseguido corregirlo?


#6

Aquí tienes la función:

def promedio(numeros):
total = sum(numeros)
total = float(total)
total = total / len(numeros)

return total

#7

Tengo el problema con la siguiente función y me da el mismo error de retornó None para sacar_promedio(milagros) y la he definido así:

def sacar_promedio(alumno):
for alumno in alumnos:
tareas=promedio(alumno["tareas"])
pruebas=promedio(alumno["pruebas"])
examenes=promedio(alumno["examenes"])
prom_pond=0.1*tareas+0.3*pruebas+.6*examenes
print prom_pond


#8

def sacar_promedio(alumno):
tareas=promedio(alumno["tareas"])
pruebas=promedio(alumno["pruebas"])
examenes=promedio(alumno["examenes"])
return 0.1*tareas+0.3*pruebas+0.6*examenes

así sí que me ha salido, por fin....


#9

funciona al 100

candela = {
"nombre": "Candela",
"tareas": [90.0, 97.0, 75.0, 92.0],
"pruebas": [88.0, 40.0, 94.0],
"examenes": [75.0, 90.0]
}
milagros = {
"nombre": "Milagros",
"tareas": [100.0, 92.0, 98.0, 100.0],
"pruebas": [82.0, 83.0, 91.0],
"examenes": [89.0, 97.0]
}
ramiro = {
"nombre": "Ramiro",
"tareas": [0.0, 87.0, 75.0, 22.0],
"pruebas": [0.0, 75.0, 78.0],
"examenes": [100.0, 100.0]
}

def promedio(numeros):
total = sum(numeros)
total = float(sum(numeros))
return total /len(numeros)

alumnos = [candela, milagros, ramiro]

for i in alumnos:
print "Nombre: ", i["nombre"]
print "Tareas: ", promedio(i["tareas"])
print "Pruebas: ", promedio(i["pruebas"])
print "Examenes: ", promedio(i["examenes"])


#10

Funciona a la perfeccion:
candela = {
"nombre": "Candela",
"tareas": [90.0, 97.0, 75.0, 92.0],
"pruebas": [88.0, 40.0, 94.0],
"examenes": [75.0, 90.0]
}
milagros = {
"nombre": "Milagros",
"tareas": [100.0, 92.0, 98.0, 100.0],
"pruebas": [82.0, 83.0, 91.0],
"examenes": [89.0, 97.0]
}
ramiro = {
"nombre": "Ramiro",
"tareas": [0.0, 87.0, 75.0, 22.0],
"pruebas": [0.0, 75.0, 78.0],
"examenes": [100.0, 100.0]
}

def promedio(numeros):
total = sum(numeros)
total = float(total)
total /= len(numeros)
return total

def sacar_promedio(alumno):
return 0.1 * promedio(alumno["tareas"]) + 0.3 * promedio(alumno["pruebas"]) + 0.6 * promedio(alumno["examenes"])
Saludos.


#11

Les paso como solucioné el primero, vamos a ver como salen los siguientes:

Lloyd = {
    "nombre":"Lloyd",
    "tareas": [90,97,75,92],
    "pruebas": [ 88,40,94],
    "examenes": [ 75,90]
    }
Alice = {
    "nombre":"Alice",
    "tareas": [100,92,98,100],
    "pruebas": [82,83,91],
    "examenes": [89,97]
    }
Tyler = {
    "nombre":"Tyler",
    "tareas": [0,87,75,22],
    "pruebas": [0,75,78],
    "examenes": [100,100]
    }
alumnos = [Lloyd,Alice,Tyler]


# Defino la función promedio y la "x" es para que pueda llamar una lista después.
def promedo(x): 
    for x in alumnos: #Pido que para cada elemento "x" en la variable alumnos, me imprima uno por uno por ser bucle for
        pro_tareas2 = sum(x[("tareas")]) / len(x[("tareas")]) #las "x" son reemplazadas por cada elemento de la lista alumnos.
        pro_pruebas2 = sum(x[("pruebas")]) / len(x[("pruebas")])
        pro_examenes2 = sum(x[("examenes")]) / len(x[("examenes")])
        print "Pomedio final:" + " " + x["nombre"]
        print (pro_tareas2 + pro_pruebas2 + pro_examenes2) / 3
        
    return (pro_tareas2 + pro_pruebas2 + pro_examenes2) / 3

print promedi(alumnos)