The following code returns the summation of the values in list "A" that exist **before** the first **even** value in the list. 

Example:

if list A = [1,3,5,4] the result would return 1 + 3 + 5 = 9

if list A = [1,2,5,4] the result would return 1

```
def for_version(L):
    found_even = False
    total = 0

    for num in L:
        if num % 2 != 0 and not found_even:
            total = total + num
        else:
            found_even = True

    return total

A = [1,3,5,9]

for_version(A)

```

I don't understand how, after the first iteration, we don't lose the 1st integer in the list. In other words, here's how I imagine the code is working.

Starts at the first value in the list "A" and prepares to move through all values one at a time:

```
for num in L:

```

Checks the first iteration of the if statement:

```
if num % 2 != 0 and not found_even:

```

Although the first number in the list IS ODD, because `found_even` was set to `False` originally the code should move to the `else` statement:

```
else:
     found_even = True

```

I imagine that the if statement has now been completed on the first value of the list and all that occurred was that the found\_even bool was changed to True. 

I assumed that the code would then move on; that the if statements would then be tested on the **NEXT** value in the list. This, however appears incorrect. If my thinking were right, in the example above, it would mean that the first value in the list "1" would be ignored when completing the summation, and we would end up with 3 + 5 = 8 **NOT** 1 + 3 + 5 = 9.

I obviously don't understand something very foundational about how the

```
for num in L:

```

line works... It's as if it did not, in fact, move to the next integer in the list and reruns the code on the first integer in the list. Can someone please explain why this is.