web-dev-qa-db-fra.com

comment calculer le pourcentage en python

C'est mon programme

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

Résultat

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

Cependant, le résultat en pourcentage est 0. Comment calculer le pourcentage correctement en Python?

8
Jothimani

Je suppose que vous apprenez à utiliser Python. Les autres réponses sont bonnes. Mais je vais répondre à votre question principale: "comment calculer le pourcentage en python" 

Bien que cela fonctionne comme vous l’avez fait, cela n’a pas l’air très pythonique. De plus, que se passe-t-il si vous devez ajouter un nouveau sujet? Vous devrez ajouter une autre variable, utiliser une autre entrée, etc. Je suppose que vous voulez la moyenne de toutes les notes, vous devrez donc également modifier le nombre de sujets à chaque fois que vous en ajoutez un! Semble un gâchis ... 

Je vais lancer un morceau de code où la seule chose à faire est d'ajouter le nom du nouveau sujet dans une liste. Si vous essayez de comprendre ce morceau de code simple, vos compétences en codage Python vont expérimenter une petite bosse.

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

Ici vous pouvez tester le code et l'expérimenter.

11
JJGuerrero

Vous effectuez une division entière . Ajoutez un .0 aux littéraux numériques:

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

En Python 2.7, la division 100/500==0.

Comme l'a souligné @unwind, l'appel float() est superflu, car une multiplication/division par un float renvoie un float:

per= tota*100.0 / 500
6
Paulo Bu

En effet, (100/500) est une expression entière donnant 0.

Essayer

per = 100.0 * tota / 500

l'appel float() n'est pas nécessaire, car l'utilisation d'un littéral à virgule flottante (100.0) créera néanmoins l'expression entière à virgule flottante.

2
unwind

Calcul en pourcentage qui a fonctionné pour moi:

(new_num - old_num) / old_num * 100.0
1
sridhar

Je sais que je suis en retard, mais si vous voulez connaître le moyen le plus simple, vous pouvez créer un code comme celui-ci:

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

Vous pouvez modifier le score numérique et right_questions. Il vous dira le pour cent.

0
Mr. Code
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)

Remarque: la fonction raw_input () est utilisée pour prendre une entrée de la console et sa valeur formatée de chaîne de retour. Nous avons donc besoin de convertir en entier sinon cela donnerait une erreur de conversion.

0
DigitalGeek