как рассчитать процент в Python

Это моя программа

print" Welcome to NLC Boys Hr. Sec. School "
a=input("nEnter the Tamil marks :")
b=input("nEnter the English marks :")
c=input("nEnter the Maths marks :")
d=input("nEnter the Science marks :")
e=input("nEnter the Social science marks :")
tota=a+b+c+d+e
print"Total is: ", tota
per=float(tota)*(100/500)
print "Percentage is: ",per

результат

Welcome to NLC Boys Hr. Sec. School 

Enter the Tamil marks :78

Enter the English marks :98

Enter the Maths marks :56

Enter the Science marks :65

Enter the Social science marks :78 Total is:  375 Percentage is:  0.0
процент результат 0. Как правильно рассчитать процент в Python?

6 ответов


Я думаю, вы учитесь на Python. Другие ответы верны. Но я хочу ответить на ваш главный вопрос: "Как рассчитать процент в Python"

хотя он работает так, как вы это сделали, это не выглядит очень подходящие для Python. Кроме того, что произойдет, если вам нужно добавить новую тему? Вам нужно будет добавить другую переменную,использовать другой вход и т. д. Я думаю, вы хотите среднее значение всех оценок, поэтому вам также придется изменять количество предметов каждый раз, когда вы добавляете новый! Кажется, беспорядок...

Я брошу кусок кода, где единственное, что вам нужно будет сделать, это добавить имя нового субъекта в список. Если вы попытаетесь понять этот простой фрагмент кода, ваши навыки кодирования Python будут экспериментировать с небольшим ударом.

#!/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))

здесь вы можете проверить код и экспериментировать с ним.


вы выполняете целочисленное деление. Добавить .0 к числу литералов:

per=float(tota)*(100.0/500.0)

в Python 2.7 отдела 100/500==0.

как указал @unwind,float() вызов является излишним, так как умножение / деление на float возвращает float:

per= tota*100.0 / 500

это так (100/500) - целочисленное выражение, дающее 0.

попробовать

per = 100.0 * tota / 500

нет необходимости в float() вызов, так как используется литерал с плавающей запятой (100.0) в любом случае сделает все выражение с плавающей запятой.


marks = raw_input('Enter your Obtain marks:')
outof = raw_input('Enter Out of marks:')
marks = int(marks)
outof = int(outof)
per = marks*100/outof
print 'Your Percentage is:'+str(per)

Примечание: функция raw_input () используется для ввода из консоли и ее возвращаемого строкового форматированного значения. Поэтому нам нужно преобразовать в целое число, иначе это даст ошибку преобразования.


процентный расчет, который работал для меня:

(new_num - old_num) / old_num * 100.0

Я знаю, что опоздал, но если вы хотите узнать самый простой способ, вы можете сделать такой код:

number = 100
right_questions = 1
control = 100
c = control / number
cc = right_questions * c
print float(cc)

вы можете изменить счет номера и right_questions. Он скажет вам процент.