按零错误划分

133*_*day 1 python floating-point decimal division

我的教授对这个问题有疑问.这是一个问题:

写一个函数typing_speed的定义,它接收两个参数.第一个是在特定时间间隔内人们键入的单词数(int大于或等于零).第二个是以秒为单位的时间间隔的长度(int大于零).该函数以每分钟的单词(浮点数)返回该人的打字速度.

这是我的代码:

def typing_speed(num_words,time_interval):
    if(num_words >= 0 and time_interval > 0):
        factor = float(60 / time_interval)
        print factor
        return float(num_words/(factor))
Run Code Online (Sandbox Code Playgroud)

我知道"因素"被赋予0,因为它没有被正确舍入或者其他东西.我不知道如何正确处理这些小数.Float显然没有做任何事情.

感谢任何帮助,谢谢.

Eli*_*sky 9

当您调用float除法结果时,事后将除法视为整数除法(注意:这是Python 2,我假设).它没有帮助,帮助最初将除法指定为浮点除法,例如通过说60.0(浮点版本60):

factor = 60.0 / time_interval
Run Code Online (Sandbox Code Playgroud)

另一种方法是将60除以 float(time_interval)

请注意此示例交互:

In [7]: x = 31

In [8]: 60 / x
Out[8]: 1

In [9]: 60.0 / x
Out[9]: 1.935483870967742
Run Code Online (Sandbox Code Playgroud)

  • 评论"来自__future__ import division"也可能有所帮助.http://mail.python.org/pipermail/tutor/2008-March/060886.html (3认同)