Robert Johns | 21 Jan, 2025
Fact checked by Jim Markus

Understanding the Python range() Function: A Quick Guide

The Python range() function is a versatile tool for generating sequences of numbers. Whether you're iterating through loops or creating custom lists, understanding how range() works can save you time and effort in your Python coding journey.

Basic Syntax

The range() function has the following syntax:

range(start, stop, step)

- start (optional): The beginning of the sequence. Defaults to 0 if not specified.
- stop (required): The endpoint of the sequence (exclusive).
- step (optional): The difference between each number in the sequence. Defaults to 1.

Common Examples

Here are some common use cases for range():

1. Generating Numbers from 0 to n-1

If only one argument is provided, range() assumes it's the stop value:

for i in range(5):
    print(i)

Output:

0
1
2
3
4

2. Specifying a Start and Stop

You can specify both the start and stop values:

for i in range(2, 6):
    print(i)

Output:

2
3
4
5

3. Using a Step Value

The step argument determines the increment (or decrement) between numbers:

for i in range(0, 10, 2):
    print(i)

Output:

0
2
4
6
8

For reverse sequences, use a negative step:

for i in range(10, 0, -2):
    print(i)

Output:

10
8
6
4
2

Converting range() to a List

While range() itself doesn't produce a list, you can easily convert it to one using the list() function:

numbers = list(range(5))
print(numbers)

Output:

[0, 1, 2, 3, 4]

Key Takeaways

- The range() function is zero-based by default.
- It’s memory-efficient since it generates numbers on the fly, rather than storing them in memory.
- You can use range() for loops, slicing, and more, making it useful for many Python projects.

Practice Exercise

Here's an interesting problem, why not try using range() to generate all odd numbers between 1 and 20:

for i in range(1, 21, 2):
    print(i)

Wrapping Up

The range() function is an essential tool in Python, offering a simple and efficient way to generate numeric sequences. By mastering range(), you'll add a valuable skill to your Python toolkit, making tasks like iteration and list creation much easier. Happy coding!

By Robert Johns

Technical Editor for Hackr.io | 15+ Years in Python, Java, SQL, C++, C#, JavaScript, Ruby, PHP, .NET, MATLAB, HTML & CSS, and more... 10+ Years in Networking, Cloud, APIs, Linux | 5+ Years in Data Science | 2x PhDs in Structural & Blast Engineering

View all post by the author

Subscribe to our Newsletter for Articles, News, & Jobs.

I accept the Terms and Conditions.

Disclosure: Hackr.io is supported by its audience. When you purchase through links on our site, we may earn an affiliate commission.

In this article

Learn More

Please login to leave comments