I haven't been coding for awhile and trying to get back into Python. I'm trying to write a simple program that sums an array by adding each array element value to a sum. This is what I have:
def sumAnArray(ar):
theSum = 0
for i in ar:
theSum = theSum + ar[i]
print(theSum)
return theSum
I get the following error:
line 13, theSum = theSum + ar[i]
IndexError: list index out of range
I found that what I'm trying to do is apparently as simple as this:
sum(ar)
But clearly I'm not iterating through the array properly anyway, and I figure it's something I will need to learn properly for other purposes. Thanks!
解决方案
When you loop in an array like you did, your for variable(in this example i) is current element of your array.
For example if your ar is [1,5,10], the i value in each iteration is 1, 5, and 10.
And because your array length is 3, the maximum index you can use is 2. so when i = 5 you get IndexError.
You should change your code into something like this:
for i in ar:
theSum = theSum + i
Or if you want to use indexes, you should create a range from 0 ro array length - 1.
for i in range(len(ar)):
theSum = theSum + ar[i]