# Loops Questions

Although I have passed Codecademy loop lesson, but I still don’t understand how to use loops correctly. In other words, I really have a big problem in using loops . For example:

``````def over_nine_thousand(lst):
all_sum = 0
for i in lst:
all_sum += i
return all_sum

print(over_nine_thousand([8000, 900, 120, 5000])) # prints 8000 instead of 14020

``````

In the code above, I want to sum all list numbers with function called `over_nine_thousand` that takes in `lst` as a parameter but `print(over_nine_thousand([8000, 900, 120, 5000])) ` only prints the first element 8000. Why is this happening ?? please help me understand how loops actually work and how to use `range()` function because whenever I write loops, they don’t work correctly.

Hello! It isn’t your use of `range()`-or the lack thereof, it is your placement of `return`. `return` stops a function, and therefore any loop within that function, when you have

The `return` actually stops the loop from looping, and gives the data back to the caller. So, in your case, `return all_sum` returns the value of `all_sum` after just one iteration over the `lst` list.

To your question about `range()`. If you just want to loop over a list (or string/other iterable), then you don’t need `range()`. If you want to loop over a series of numbers, or you want to deal with indexes (in a list, string, etc), then you could use `range()`.
I hope this helps!

2 Likes

Thank you so much for explaining how to use range()!

1 Like

But can we reverse the loop? I mean can we make the loop go from right to left instead of left to right? If so, how to do that?

Yes. You can use the `range()` function. You the order for the parameters? “Start, stop, step”. So, if you want to go from the right of a list, you can use:

``````range(end_of_list, beginning_of_list, step_number)
#end_of_list should be the correct list index to start at the index of the last element of the list
#beginning_of_list should be the correct index to have the last iteration iterating over the first element of the list
#step_number-the increments or decrements you want the loop to iterate in
``````

Here is a good article on `range()`.

2 Likes