# The sum of scores not adding up

My initial code looks like the below but that only prints the last grade:

``````
total = 0
for s in scores:
total =+ s

``````

However, if I change it to below it does add up, I thought =+ should add the total and the next value together? I think I had this issue understanding in an earlier section so thought I’d investigate now.

``````grades = [100, 100, 90, 40, 80, 100, 85, 70, 90, 65, 90, 85, 50.5]

total = 0
for s in scores:
total = total + s

``````

Hi @fire_munki,

In your first code example, you have:

``````    total =+ s
``````

It should be:

``````    total += s
``````
2 Likes

For gods sake!

Thank you, dyslexia strike again. Maybe writing it out long hand is a suitable method for overcoming it!

1 Like

Do you know why what you had in your first example produced that result?

Not really, I’m sure it’s something simple.

`=+` is not a single valid token or symbol in Python. It parses as two valid tokens, namely, `=` and `+`. Here, `=` is an assignment operator, and `+` serves as a unary positive operator. Python interprets your statement as:

``````    total = +s
``````

In the above, we are assigning `+s` to `total`. Applying a unary positive operator to an `int` or a `float` results in the same value as that of the operand. Accordingly, the above is equivalent to the following assignment statement:

``````    total = s
``````

In your first code example, that assignment executes during each iteration of the loop, which replaces the previous value of `total` with the current value of `s`. During the final iteration of the loop, the value of the last item in the `scores` list is what is assigned to `total`, and that is the value that gets returned by the function.

Edited on September 2, 2019 to identify `+` as a unary positive operator in this context

4 Likes