 Computer Science

# Range

The `range()` function creates a `range object` that is iterable:

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

This will print:

``````0
1
2
3
4``````

Notice that the range goes from `0` to `4`.

## Starting and ending points

By default, `range()` starts from zero, but you can provide an explicit starting point:

``````for i in range(4, 10):
print(i)``````

This will print:

``````4
5
6
7
8
9``````

## Iterating over a list

We have previously seen `for ... in` when iterating over a list

``````fruits = ['apples', 'apricots', 'avocados']
for fruit in fruits:
print(fruit)``````

We can also use `range()` to iterate over a list:

``````fruits = ['apples', 'apricots', 'avacados']
for index in range(len(fruits)):
print(fruits[index])``````

These will both print:

``````apples
apricots

This loop: `for index in range(len(fruits))` will produce an `index` of `0`, `1`, `2`, since the length of the list is `3`.

## Turning a range into a list

A range object is iterable. This means we can use `for ... in` to loop through the range, as shown above. This also means we can turn it into a list:

``list(range(4, 12))``

This creates a list that holds `[4, 5, 6, 7, 8, 9, 10, 11]`.

## Stepping in the range

The `range()` function takes a third parameter, called the step that indicates how many items we should skip as we make the range.

### Stepping by 1

This code

``````for i in range(2, 10, 1):
print(i)``````

will print:

``````2
3
4
5
6
7
8
9``````

### Stepping by 2

This code:

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

will print:

``````2
4
6
8``````

### Stepping by 3

And this code:

``````for i in range(2, 10, 3):
print(i)``````

will print

``````2
5
8``````

## Quiz

What python expression using range would you use to create the following sequences?

``````1, 2, 3, 4, 5
0, 2, 4, 6, 8
-3, 0, 3
5, 4, 3, 2``````