# 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'>
``````