# Home on the range#

When we want to iterate through a range of values, we take the help of the function `range()`.

A very basic use of range is to pass an integer argument to range like we saw in the example in the previous reading. Here is an example: `range(5)`

This returns a sequence of integer values from 0 up until, but not including, the passed value. In the example above, it is a sequence from 0 to 5, not including 5 (i.e., 0, 1, 2, 3, 4).

The above for loop would iterate a total of 5 times

• In the first iteration, `i` is equal to 0. After the body of the loop is evaluated, `total_sum` has a value of 0.

• In the second iteration, `i` is equal to 1. After the body of the loop is evaluated, `total_sum` has a value of 1.

• In the third iteration, `i` is equal to 2. After the body of the loop is evaluated, `total_sum` has a value of 3.

• In the fourth iteration, `i` is equal to 3. After the body of the loop is evaluated, `total_sum` has a value of 6.

• In the fifth iteration, `i` is equal to 4. After the body of the loop is evaluated, `total_sum` has a value of 10.

• There are no more values to iterate over in the sequence `range(5)`, so the loop is done being evaluated.

The resulting value of `total_sum` is 10.

## Start, stop and step arguments in range()#

The `range()` function can also be called with two or even three arguments as follows:

This would print:

```3
4
5
```

As it is evident from the example above, when `range()` is called with two arguments, the first argument or parameter in the `range()` function is considered as the starting point for the sequence generated and the second argument is considered as the ending point (not included in the sequence). (Notice that we’re inclusive at the beginning and exclusive at the end—just like for slicing.)

This would print:

```3
6
9
```

Along with the starting point and the ending point, we can call `range()` with three arguments. The third argument will be the step as the third argument to the `range()` function. The step is added to the previous number in the sequence in order to get to the next number in the sequence; above, the step value is 3, so we count by threes.

More examples and uses of range can be found here: https://docs.python.org/3/library/stdtypes.html#range