2017-10-09 9 views
2

Je suis très nouveau à la programmation et ai couru dans quelque chose que je ne peux juste pas comprendre dehors! J'ai une fonction définie par l'utilisateur qui est censé calculer un pourcentage:Fonction définie par l'utilisateur retournant la valeur incorrecte dans Pycharm mais pas IDLE

def test_score(num_correct, total): 
    temp_value = num_correct/total 
    return temp_value*100 

a = 12 
b = 20 
print(test_score(a, b)) 

Selon mes calculs, le programme devrait être de retour la valeur 60, et il le fait lorsque le code est entré en IDLE. Cependant, quand entré dans Pycharm le code renvoie la valeur 0.

Des idées quant à pourquoi ceci pourrait être?

+2

Ils utiliseront probablement différentes versions de Python – DavidG

Répondre

2

Il s'agit probablement de différentes versions de Python, comme indiqué dans les commentaires.

python2:

12/20 -> 0 (default for integers) 
12 * 1.0/20 -> 0.6 (if float is involved) 

python3:

12/20 -> 0.6 (default for integers) 
12 // 20 -> 0 (floor division) 

Voir la documentation sur division et floor division. Dans Pycharm, vous pouvez définir la version Python sous settings -> project -> project interpreter (ou similaire, selon la version et la plateforme).

+0

Excellent, quand num_correct et total sont convertis en flottants dans la fonction, la bonne réponse est reçue. –