Это решение проблемы, над которой я работаю (обучение Python), но даже решение дает мне ошибку.Объект Python типа «float» не имеет len()
Вот код:
def compute_deriv(poly):
"""
Computes and returns the derivative of a polynomial function. If the
derivative is 0, returns [0.0].
Example:
>>> poly = [-13.39, 0.0, 17.5, 3.0, 1.0] # - 13.39 + 17.5x^2 + 3x^3 + x^4
>>> print compute_deriv(poly) # 35^x + 9x^2 + 4x^3
[0.0, 35.0, 9.0, 4.0]
poly: list of numbers, length > 0
returns: list of numbers
"""
poly_deriv = []
if len(poly) < 2:
return [0.0]
for j in xrange(1, len(poly)):
poly_deriv.append(float(j * poly[j]))
return poly_deriv
Это решение дано мне, но когда я использую следующий код для вызова функции:
poly1 = (-13.39)
print compute_deriv(poly1)
Я получаю
TypeError: object of type 'float' has no len()
Я пробовал пару разных вещей внутри оператора if (так как этот код ломается только тогда, когда len(poly)
i с < 2;
Я попробовал poly_deriv.append(0.0)
и return poly_deriv
, например.
В документе говорится, что вы должны называть 'poly' со списком. Попытайтесь это сделать. –
http://www.wolframalpha.com/input/?i=what+is+the+derivative+of+13.39 – corn3lius