对元组抛出Python-TypeError。麻省理工学院开放式课程6.00问题集2简介
我有点不明白为什么会抛出这个类型错误对元组抛出Python-TypeError。麻省理工学院开放式课程6.00问题集2简介,python,tuples,typeerror,Python,Tuples,Typeerror,我有点不明白为什么会抛出这个类型错误 Traceback (most recent call last): File "<pyshell#19>", line 1, in <module> evaluate_poly(polyTestTwo,-13) File "C:\Users\robert\Desktop\programming\MIT open courseware\ps2\ps2_newton.py", line 22, in evaluate
Traceback (most recent call last):
File "<pyshell#19>", line 1, in <module>
evaluate_poly(polyTestTwo,-13)
File "C:\Users\robert\Desktop\programming\MIT open courseware\ps2\ps2_newton.py", line
22, in evaluate_poly
valHolder+=((poly[i]*x)**i)
TypeError: tuple indices must be integers
我输入以获得这个特定错误,如下所示
>>>polyTest=(0.0,0.0,5.0,9.3,7.0)
>>>evaluate_poly(polyTest,-13)
知道是什么引起的吗?我认为元组可以有浮点数作为值?您的循环
for I in poly
迭代poly
的值,而不是索引
如果需要索引,请使用enumerate()
函数添加这些索引;您可以在循环中同时获得索引和值:
def evaluate_poly(poly, x):
valHolder = 0.0
for i, value in enumerate(poly):
valHolder += (value * x) ** i
return valHolder
您也不需要在这里测试循环的结束,也不需要将结果转换为浮点;它已经是一个浮点。您的循环
for i in poly
迭代poly
的值,而不是索引
如果需要索引,请使用enumerate()
函数添加这些索引;您可以在循环中同时获得索引和值:
def evaluate_poly(poly, x):
valHolder = 0.0
for i, value in enumerate(poly):
valHolder += (value * x) ** i
return valHolder
您也不需要在这里测试循环的结束,也不需要将结果转换为浮点;它已经是一个浮点。请注意,如果将公式示例输出解释为
(7*-13)**4
等,则该输出毫无意义;这个数字是66812013.671,而不是180339.9。我不知道如何将该总和解释为(7*-13**4)
,等等。相反,总和为-221204.1。请注意,如果将其解释为(7*-13)**4
,则公式示例输出毫无意义;这个数字是66812013.671,而不是180339.9。我不知道如何解释这个总和,因为(7*-13**4)
,等等。总和改为-221204.1。