pyschools:网站给出了错误的答案?(主题2,问题7)

luk*_*kik 2 python

我是python的新手!做了我的学习,经历了几本书,现在尝试了学校的挑战.成功完成变量和数据类型,但主题2(函数)的问题7给了我地狱.

我正在使用Eclipse和Python(版本3.2).在我的日食中,我得到答案100,51和525.这些是pyschools所期望的答案,但它表明我的函数返回100,0和500.

这是一个问题(希望我可以在这里发布!):
写一个函数百分比(值,总数),它接受两个数字作为参数,并返回百分比值作为整数.
以下是我的功能

    def percent (value, total):
        a = value
        b = total
        return(int((a / b) * 100))
    percent(70, 70)
    percent(46, 90)
    percent(63, 12)
Run Code Online (Sandbox Code Playgroud)

谁能告诉我学校真正想要我做什么或哪里出错了?

谢谢!

kin*_*all 9

你正在使用Python 3.x,他们正在使用Python 2.x. 在Python 2.x中,/当参数是整数时,操作始终是整数除法.1/2是0.因此,使用float()将您的一个参数更改为浮点数,例如int((float(a) / b) * 100).然后a/b将有一个小部分.

或者,假设他们使用的是最新版本的Python 2.x,您可以将其添加到脚本的开头,它应该在网站上运行:

from __future__ import division
Run Code Online (Sandbox Code Playgroud)

另外,为什么要将输入参数分配给变量?他们已经是变数了.如果你想要它们命名,a并且b只是以这种方式接收它们:

def percent(a, b):
    return int((float(a) / b) * 100)
Run Code Online (Sandbox Code Playgroud)