次のプログラムでは、インデックスが範囲外のエラーが発生しました。
def evaluate(x, y):
result = 0
for i in x:
result += (x[i])*(y**i)
return result
次のプログラムでは、インデックスが範囲外のエラーが発生しました。
def evaluate(x, y):
result = 0
for i in x:
result += (x[i])*(y**i)
return result
のすべての値を既にループしているx
ため、再度インデックスを付ける必要はありません。
def evaluate(x, y):
result = 0
for i in x:
result += i * (y**i)
return result
次の 2 つを比較します。
>>> x = [3, 2]
>>> for i in x:
... print i
...
3
2
>>> for i in x:
... print x[i]
...
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
IndexError: list index out of range
i
へのインデックスになると予想される場合はx
、 を使用enumerate()
してそのインデックスを取得します。
def evaluate(x, y):
result = 0
for i, value in enumerate(x):
result += value * (y**i)
return result