尝试使用Horner的规则评估函数。虽然遇到了问题;我一直收到“TypeError:'int'对象不可迭代”。任何人都可以快速帮我找到解决这个问题的方法吗? 这是我的代码:
def evaluatePoly(poly, x_):
polyTotal = 0
for nn in len(poly):
polyTotal *= x_ + poly[nn]
return float(polyTotal)
poly作为列表进入函数。我认为这是我的问题,但是如何修复我的代码以适应这一点。
答案 0 :(得分:3)
您的问题与poly
无关。您正试图在nn
而不是len(poly)
上重复range(len(poly))
次。但是,最好使用foreach
循环,这样可以使代码看起来像这样
def evaluatePoly(poly, x_):
polyTotal = 1
for i in poly:
polyTotal *= x_ + i
return float(polyTotal)
polyTotal
也必须初始化为1
,因为0
次的任何内容都是0
。
答案 1 :(得分:1)
你的问题是你试图迭代poly的长度,而不是poly本身。将您的代码更改为:
def evaluatePoly(poly, x_):
polyTotal = 1
for nn in poly:
polyTotal *= x_ + nn
return float(polyTotal)
或者,如果你真的想通过索引,你可以这样做:
def evaluatePoly(poly, x_):
polyTotal = 1
for nn in range(len(poly)):
polyTotal *= x_ + poly[nn]
return float(polyTotal)
您还希望将polyTotal初始化为0以外的值,可能为1,否则您每次都会得到0