pyschool错了?

ste*_*tla 2 python

我正在学习python并尝试在pyschools做练习(如果有人知道它是什么).无论如何,我有一个练习,要求我执行以下操作:编写一个函数百分比(值,总),它接受两个数字作为参数,并返回百分比值作为整数.

这是我的代码:

def percent(value, total):
    percent = value / total * 100
    return int(percent)
Run Code Online (Sandbox Code Playgroud)

它在我的Python Idle中运行良好,它提供了所有正确的答案.然而,当我在pyschools网站上运行时,它说,例如,当使用参数46和90调用函数时,函数返回0.但是,在我的python空闲时,它正确返回51.可能是什么问题?非常感谢您的帮助!

Tho*_*zco 6

在python 2.x中,除法是整数除法,在python 3.x中,它不是.这可能解释了您的问题.

此外,您可以使用括号使代码更具可读性.


joa*_*uin 6

你需要使用浮动分区.

在你的情况下,你可以应用这个小技巧:

percent = (100. * value) / total
Run Code Online (Sandbox Code Playgroud)

当其中一个因素是浮动时,操作会给你浮动.您不需要全部转换.请注意,这不起作用:

percent = (value / total) * 100.
Run Code Online (Sandbox Code Playgroud)

因为第一个操作是以整数模式执行的

(顺便说一句,不要忘记将百分比转换为整数以符合学校的要求.我没有这么做是为了清晰)