Деление на ноль ошибок - PullRequest
       28

Деление на ноль ошибок

1 голос
/ 24 сентября 2010

У меня проблема с этим вопросом от моего профессора.Вот вопрос:

Напишите определение функции typing_speed, которая получает два параметра.Первое - это количество слов, которые набрал человек (целое число больше или равно нулю) за определенный промежуток времени.Второе - это длительность временного интервала в секундах (целое число больше нуля).Функция возвращает скорость набора этого человека в словах в минуту (число с плавающей запятой).

Вот мой код:

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))

Я знаю, что «коэффициент» получает 0, потому что он не округляется должным образом или что-то ещеЯ не знаю, как правильно обрабатывать эти десятичные дроби.Флоат, очевидно, ничего не делает.

Любая помощь приветствуется, спасибо.

Ответы [ 2 ]

9 голосов
/ 24 сентября 2010

Когда вы вызываете float для результата деления, это после факта деление считалось целочисленным делением (примечание: это Python 2, я полагаю). Это не помогает, то, что помогает, - это изначально указать деление как деление с плавающей запятой, например, с помощью 60.0 (версия с плавающей запятой 60):

factor = 60.0 / time_interval

Другим способом было бы разделить 60 на float(time_interval)

Обратите внимание на этот пример взаимодействия:

In [7]: x = 31

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

In [9]: 60.0 / x
Out[9]: 1.935483870967742
4 голосов
/ 24 сентября 2010

Шарт хотел сказать: from __future__ import python

Пример:

>>> from __future__ import division
>>> 4/3
1.3333333333333333
>>>
...