buenas..
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: 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
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:
Código Python:
Ver originaldef 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