# Python Range

In this tutorial, you will learn about Python's range() function to create a sequence of numbers with the help of examples.

The `range()` function in Python is a built-in function that generates a sequence of numbers. For example,

``````# creates a sequence of numbers from 0 to 4
numbers = range(5)

for number in numbers:
print(number)``````

Output

```0
1
2
3
4```

Note: `range()` is a useful function that is commonly used in a `for` loop to iterate the loop a certain number of times.

By the way, the `range()` function returns an immutable sequence of numbers that can be easily converted to lists, tuples etc.

``````# creates a sequence of numbers from 0 to 4
numbers = range(5)

# converting to list and printing it
print(list(numbers))    # [0, 1, 2, 3, 4]``````

## range() Syntax

The `range()` function can take a maximum of three arguments:

``range(start, stop, step)``

The `start` and `step` arguments in the `range()` function are optional.

### Example 1: range() with One Argument

If we pass a single argument to `range()`, it returns a sequence of arguments starting from 0 up to that number (excluding the number).

``````# numbers from 0 to 3 (4 is not included)
numbers = range(4)
print(list(numbers))    # [0, 1, 2, 3]``````

Note: If we pass a single argument to `range()`, it means we are passing the stop argument.

### Example 2: range() with Two Arguments

If we pass two arguments to `range()`, it returns a sequence of numbers starting the first argument (inclusive) to the last argument (exclusive).

``````# numbers from 2 to 3 (4 is not included)
numbers = range(2, 4)
print(list(numbers))    # [2, 3]

# numbers from -2 to 2 (3 is not included)
numbers = range(-2, 3)
print(list(numbers))    # [-2, -1, 0, 1, 2]``````

Note: If we pass two arguments to `range()`, it means we are passing the start argument and the stop argument.

### Example 3: range() with Three Arguments

If we pass three arguments, this means

1. `start` is the first argument
2. `stop` is the second argument
3. `step` is the third argument

The `step` argument specifies the gap between two numbers in the sequence. Let's see an example of this:

``````# numbers from 10 to 20 with 3 increments between numbers
numbers = range(10, 20, 3)
print(list(numbers))``````

Output

`[10, 13, 16, 19]`

The `range(10, 20, 3)` function generates a sequence of numbers starting from 10, incrementing by 3 each time, and stopping before it reaches 20.

The `range()` function stops before it reaches the ending value specified, in this case 20, the sequence stops at 19.