Ernesto, miembro de nuestro equipo, nos hizo el favor de crear esta reseña ya que domina a la perfección dicho tema.
Solución:
Supongo que estás aprendiendo a Python. Las otras respuestas son correctas. Pero voy a responder a su pregunta principal: “cómo calcular el porcentaje en python”
Aunque funciona de la forma en que lo hiciste, no parece muy pitónico. Además, ¿qué sucede si necesita agregar un nuevo tema? Tendrás que agregar otra variable, usar otra entrada, etc. Supongo que quieres el promedio de todas las calificaciones, ¡así que también tendrás que modificar el conteo de las materias cada vez que agregues una nueva! Parece un desastre…
Lanzaré un trozo de código donde lo único que tendrás que hacer es agregar el nombre del nuevo sujeto en una lista. Si intenta comprender este simple fragmento de código, sus habilidades de codificación de Python experimentarán un pequeño bache.
#!/usr/local/bin/python2.7
marks = #a dictionary, it's a list of (key : value) pairs (eg. "Maths" : 34)
subjects = ["Tamil","English","Maths","Science","Social"] # this is a list
#here we populate the dictionary with the marks for every subject
for subject in subjects:
marks[subject] = input("Enter the " + subject + " marks: ")
#and finally the calculation of the total and the average
total = sum(marks.itervalues())
average = float(total) / len(marks)
print ("The total is " + str(total) + " and the average is " + str(average))
Aquí puedes probar el código y experimentar con él.
Estás realizando un División entera. Añadir un .0
a los literales numéricos:
per=float(tota)*(100.0/500.0)
En Python 2.7 la división 100/500==0
.
Como señaló @unwind, el float()
la llamada es superflua ya que una multiplicación/división por un flotante devuelve un flotante:
per= tota*100.0 / 500
Esto es porque (100/500)
es una expresión entera que da 0.
Probar
per = 100.0 * tota / 500
no hay necesidad de la float()
llamada, ya que usando un literal de punto flotante (100.0
) hará que la expresión completa sea de punto flotante de todos modos.
valoraciones y comentarios
Si estás contento con lo expuesto, tienes la libertad de dejar una reseña acerca de qué le añadirías a esta noticia.