Foros del Web » Programando para Internet » Python »

ejercicio simple

Estas en el tema de ejercicio simple en el foro de Python en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 27/07/2009, 16:45
AxL456
Invitado
 
Mensajes: n/a
Puntos:
ejercicio simple

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 original
  1. def input(tipo):
  2.     while True:
  3.         a = raw_input("cuantos alumnos con nota %s?:"% tipo)
  4.         if a.isdigit():
  5.             break
  6.         else:
  7.             print a, "no es un valor numerico"
  8.     return a
  9.  
  10. tipos = ["menor a 10", "igual a 10", "entre 11 y 17", "entre 18 y 20"]
  11. dic = {}
  12.  
  13. for x in tipos:
  14.     dic[x] = int(input(x))
  15.    
  16. total = (dic["menor a 10"]
  17.         + dic["igual a 10"]
  18.         + dic["entre 11 y 17"]
  19.         + dic["entre 18 y 20"])
  20.  
  21. Paprobados = ((dic["igual a 10"]
  22.              + dic["entre 11 y 17"]
  23.              + dic["entre 18 y 20"]) * 100 / total)
  24.  
  25. Pmenor10 = (dic["menor a 10"] * 100 / total) # % con nota menor 10
  26. Pigual10 = (dic["igual a 10"] * 100 / total) # % con nota igual a 10
  27. P11y17 = (dic["entre 11 y 17"] * 100 / total) # % con nota entre 11 y 17
  28. P18y20 = (dic["entre 18 y 20"] * 100 / total) # % con nota entre 18 y 20
  29.  
  30. print "El porcentaje de alumnos aprobados es igual a %s " % Paprobados
  31. print "El porcentaje de alumnos reprobados es igual a %s " % Pmenor10
  32. print "El porcentaje de alumnos con notas igual a 10 es igual a %s " % Pigual10
  33. print "El porcentaje de alumnos con notas entre 11 y 17 es igual a %s " % P11y17
  34. print "El porcentaje de alumnos con notas entre 18 y 20 es igual a %s " % P18y20
  #2 (permalink)  
Antiguo 27/07/2009, 20:46
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: ejercicio simple

Código python:
Ver original
  1. #!/usr/bin/env python
  2. #coding: UTF-8
  3.  
  4. def cuenta_entre(x, y, l):
  5.     t = 0
  6.     for i in range(x, y + 1):
  7.         if i in l:
  8.             t += l.count(i)
  9.     return t
  10.    
  11. l = [0, 10, 25, 30, 40, 90, 100, 70, 65, 75, 84]
  12.  
  13. print "%.2f prociento aprobados" % (cuenta_entre(70, 100, l)*100/len(l))

Si ya le das los alumnos contados, no tiene chiste. No hice lo demas, por que es practicamente hacer lo mismo varias veces.
  #3 (permalink)  
Antiguo 06/08/2009, 22:20
AxL456
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ejercicio simple

gracias por tu respuesta :)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:56.