miércoles, 7 de enero de 2015

Soluciones Codecademy Python , El estudiante se vuelve profesor

Buenas !! Aquí os dejo las soluciones al tema "El estudiante se vuelve profesor " del curso de python de la web Codecademy


1/9
candela = {
    "nombre": "candela",
    "tareas":[],
    "pruebas":[],
    "examenes":[],
}
milagros={
    "nombre":"milagros",
    "tareas":[],
    "pruebas":[],
    "examenes":[],
}
ramiro={
    "nombre":"ramiro",
    "tareas":[],
    "pruebas":[],
    "examenes":[],
}

2/9
Candela = {
    "nombre":"Candela",
    "tareas": [90, 97, 75, 92],
    "pruebas": [88, 40, 94],
    "examenes": [75, 90]
    }
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]
}  

3/9
alumnos=[Candela,Milagros,Ramiro]

4/9
for alu in alumnos:
    print alu["nombre"]
    print alu["tareas"]
    print alu["pruebas"]
    print alu["examenes"]

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

6/9
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.7

7/9
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))
 
8/9
def obtener_promedio_clase(alumnos):
    puntajes=[]
    for alu in alumnos:
        puntajes.append(sacar_promedio(alu))
    return promedio(puntajes)

9/9
alumnos=[candela,milagros,ramiro]
print obtener_promedio_clase(alumnos)

8 comentarios:

  1. Hola wapa!! He conseguido averiguar dónde tenía el fallo XD Era un "return" en vez de un "print" en el 6/9.
    Te hago un copy/paste de mi ejercicio completo, ya no da errores :)

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


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

    return resultado


    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 = []
    for alu in alumnos:
    puntajes.append(sacar_promedio(alu))
    return promedio(puntajes)

    alumnos = [candela, milagros, ramiro]
    print obtener_promedio_clase(alumnos)
    print calificaciones_con_letras(obtener_promedio_clase(alumnos))

    Nos vemos en clase ¡bye!

    ResponderEliminar
    Respuestas
    1. no me sirve ningun codigo del 6/9 al 9/9 :(

      Eliminar
    2. Hola!!
      ¿qué error te da?
      Por que a mí si que me ha validado todo.

      Eliminar
  2. sigue sin servirme el codigo desde el 6/9 hazta el 9/9

    ResponderEliminar
  3. Buenas, no me sirve el codigo 9/) cuando llego ahi me dice que el codigo esta roto

    ResponderEliminar
  4. este es el 6/9 de nada


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

    def sacar_promedio(alumno):
    tareas = 0.1*promedio(alumno['tareas'])
    pruebas = 0.3*promedio(alumno['pruebas'])
    examenes = 0.6*promedio(alumno['examenes'])
    return sum([tareas,pruebas,examenes])

    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'

    def obtener_promedio_clase(alumnos):
    puntuaje=[]
    for alumno in alumnos:
    puntuaje.append(sacar_promedio(alumno))
    return promedio(puntuaje)

    alumnos=[candela, milagros, ramiro]
    for elemen in alumnos:
    print elemen['nombre']
    print calificaciones_con_letras(sacar_promedio(elemen))
    print 'TOTAL'
    print obtener_promedio_clase(alumnos)
    print calificaciones_con_letras(sacar_promedio(candela))

    ResponderEliminar
  5. buenos dias, he copiado el punto 4 y no funciona

    ResponderEliminar