El estudiante se vuelve profesor


#1



no entiendo por que en la pantalla de resultados me sale esto. un ayudita:
Traceback (most recent call last):
File "python", line 55, in
File "python", line 49, in obtener_promedio_clase
NameError: global name 'alumno' is not defined


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))
    promedio=float(total)/len(numeros)
    return promedio   
    
def sacar_promedio(alumno):
    tareas=promedio(alumno['tareas'])
    pruebas=promedio(alumno['pruebas'])
    examenes=promedio(alumno['examenes'])
    return tareas*0.1+pruebas*0.3+examenes*0.6 
    
def calificaciones_con_letras(resultado):
    if(resultado>=90):
        return "A"
    elif(resultado>=80):
        return "B"
    elif(resultado>=70):
        return "C"
    elif(resultado>=60):
        return "D"
    else:
        return "F"
        
print calificaciones_con_letras(sacar_promedio(candela))

def obtener_promedio_clase(alumnos):
    puntajes=[]
    if alumno in alumnos:
        puntajes.append(sacar_pormedio(alumno))
    return promedio(puntajes)
    
alumnos=[candela, milagros, ramiro]

print obtener_promedio_clase(alumnos)
print calificaciones_con_letras(obtener_promedio_clase(alumnos))

#2

Hola mariamolpe, no se si sea por esta razon, pero veo que no has puesto los nombres de los alumnos entre " " como cadenas en tu lista de alumnos

alumnos=["candela", "milagros", "ramiro"]