Understanding range() Function in Python with Examples

In python programming language, range() is built-in function which is very handy to generate integer numbers and is frequently used to iterate through list. Before diving into use case of this function we first understand what it does with examples.

First, let's look at its syntax:


range(stop) -> range object
# OR
range(start, stop) -> range object
# OR
range(start, stop, step) -> range object

In the above syntax, start, stop & step are arguments to the range. And -> range object indicates this function returns range object finally.

Working of range() Function

range() function returns an object that produces a sequence of integers from start (inclusive) to stop (exclusive) by given step. range(p, q) produces p, p+1, p+2, p+3,p+4 ..., q-1.

start defaults to 0, and stop is omitted! range(5) produces 0, 1, 2, 3,4. These are exactly the valid indices for a list of 5 elements. When step is given, it specifies the increment (or decrement).

range() Examples

Example 1 (with stop only)


x = range(5)
x = list(x) # converting to list
print(x)

Output

[0, 1, 2, 3, 4]

Example 2 (with start and stop)


x = range(5,11)
x = list(x) # converting to list
print(x)

Output

[5, 6, 7, 8, 9, 10]

Example 3 (with start, stop and step)


x = range(7,34,3)
x = list(x) # converting to list
print(x)

Output

[7, 10, 13, 16, 19, 22, 25, 28, 31]

range() Function and for Loop Examples

First, let's run:


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

Which gives:

0
1
2
3
4

In above program range(5) generates number 0, 1, 2, 3, 4 and we iterate through them to print. In general when one argument say (p) is given to range function then it generates number from 0 to p-1 and each time updating value by 1.

Second, let's run:


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

Which gives:

2
3
4

In above program range(2,5) generates number 2, 3, 4 and we iterate through them to print. In general when two arguments say (p, q) are given to range function then it generates number from p to q-1 and each time updating value by 1.

Third, let's run:


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

Which gives:

1
3
5
7

In above program range(1,8,2) generates number 1, 3, 5, 7 and we iterate through them to print. In general when three arguments say (p, q, r) are given to range function then it generates number from p to q-1 with update value of r.

Finally Checking Type of Object Returned by range() Function


>>> x = range(5)
>>> type(x)
<class 'range'>