Why do I get an IndexError (or TypeError, or just wrong results) from “ar[i]” inside “for i in ar”?

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]

Leave a Comment