We can also loop in reverse using the range(start, end, step)
function by giving the step
argument a negative value. For example:
for i in range(7, 2, -1):
print(i)
The output of this code is:
7
6
5
4
3
Let's break down this code:
start = 7
, so we start iterating from number 7.
stop = 2
, so we end at number 2. Notice it's still exclusively and we don't print 2.
step = -1
, so we decrease our number by 1 every time.
Assignment
Let's print all numbers from 5
through -5
in decreasing order.
Hint
Look at the examples above if you get stuck.
In this lesson, we will explore how to loop in reverse in Python using the range()
function. Looping in reverse is a common requirement in programming, especially when you need to process elements in a list or sequence from the end to the beginning. This technique is useful in scenarios such as reversing a list, iterating over a sequence in reverse order, or performing operations that require backward traversal.
The range()
function in Python generates a sequence of numbers. It can take up to three arguments: start
, stop
, and step
. When looping in reverse, we use a negative step
value. The start
argument specifies the starting point, the stop
argument specifies the endpoint (exclusive), and the step
argument specifies the increment (or decrement) between each number in the sequence.
For example:
for i in range(7, 2, -1):
print(i)
This code will output:
7
6
5
4
3
To loop in reverse, we need to understand the following key concepts:
By setting the step
argument to a negative value, we can decrement the sequence, effectively looping in reverse.
Let's apply these concepts to solve the assignment: printing all numbers from 5 through -5 in decreasing order.
for i in range(5, -6, -1):
print(i)
This code will output:
5
4
3
2
1
0
-1
-2
-3
-4
-5
In this example:
start = 5
: We start iterating from number 5.stop = -6
: We end at number -6 (exclusive), so -5 is the last number printed.step = -1
: We decrease our number by 1 each time.When using the range()
function to loop in reverse, be mindful of the following:
step
value is negative to decrement the sequence.stop
value is exclusive, so the loop will not include this value.start
, stop
, and step
values to avoid infinite loops or off-by-one errors.Best practices include writing clear and concise code, using meaningful variable names, and adding comments to explain the logic.
Advanced techniques for looping in reverse include using list comprehensions and the reversed()
function. For example, you can reverse a list and iterate over it:
my_list = [1, 2, 3, 4, 5]
for i in reversed(my_list):
print(i)
This code will output:
5
4
3
2
1
Here is the complete code implementation for the assignment:
# Looping in reverse from 5 to -5
for i in range(5, -6, -1):
print(i)
When debugging code that involves looping in reverse, consider the following tips:
Example test case:
def test_reverse_loop():
result = []
for i in range(5, -6, -1):
result.append(i)
assert result == [5, 4, 3, 2, 1, 0, -1, -2, -3, -4, -5]
test_reverse_loop()
When approaching problems that require looping in reverse, consider the following strategies:
In this lesson, we explored how to loop in reverse using the range()
function in Python. We discussed the key concepts, provided examples, and highlighted common pitfalls and best practices. Mastering this technique is essential for various programming tasks, and we encourage you to practice and explore further applications.
For further reading and practice, consider the following resources: