aqui tengo un algoritmo sencillo que me gustaria ver de que otra manera ustedes lo escribirian porque pienso que le he dado muchas lineas a este problemita
Cita:
Como extra le coloque al codigo, que en caso de que el usuario colocara valores de entrada que no fueran numeros el programa respondiera indicandole que debe ingresar un valor numerico:Se tienen los datos estadisticos de una materia y se desea saber lo siguiente:
- Porcentaje de alumnos aprobados
- Procentaje de alumnos reprobados
- Porcentaje de alumnos con nota igual a 10
- Porcentaje de alumnos con notas entre11 y 17
- Porcentaje de alumnos con notas entre 18 y 20
Código Python:
Ver original
def input(tipo): while True: a = raw_input("cuantos alumnos con nota %s?:"% tipo) if a.isdigit(): break else: print a, "no es un valor numerico" return a tipos = ["menor a 10", "igual a 10", "entre 11 y 17", "entre 18 y 20"] dic = {} for x in tipos: dic[x] = int(input(x)) total = (dic["menor a 10"] + dic["igual a 10"] + dic["entre 11 y 17"] + dic["entre 18 y 20"]) Paprobados = ((dic["igual a 10"] + dic["entre 11 y 17"] + dic["entre 18 y 20"]) * 100 / total) Pmenor10 = (dic["menor a 10"] * 100 / total) # % con nota menor 10 Pigual10 = (dic["igual a 10"] * 100 / total) # % con nota igual a 10 P11y17 = (dic["entre 11 y 17"] * 100 / total) # % con nota entre 11 y 17 P18y20 = (dic["entre 18 y 20"] * 100 / total) # % con nota entre 18 y 20 print "El porcentaje de alumnos aprobados es igual a %s " % Paprobados print "El porcentaje de alumnos reprobados es igual a %s " % Pmenor10 print "El porcentaje de alumnos con notas igual a 10 es igual a %s " % Pigual10 print "El porcentaje de alumnos con notas entre 11 y 17 es igual a %s " % P11y17 print "El porcentaje de alumnos con notas entre 18 y 20 es igual a %s " % P18y20