range() function

The built-in function range() can turn your foreach-like for-loop back into one that you are more familiar with, i.e., counting from zero to ten, or counting from 10 to 100 in increments of 5.

range() Full Syntax

Python presents two different ways to use range(). The full syntax requires that two or all three integer arguments are present:
range( start, end, step=1)
range() will then return a list where for any k, start <= k < end and k iterates from start to end in increments of step. step cannot be 0, or else an error condition will occur.

```>>> range(2,19,3)
[2, 5, 8, 11, 14, 17]
```

If step is omitted and only two arguments given, step takes a default value of 1.

```>>> range(3,7)
[3, 4, 5, 6]
```

Let’s take a look at an example used in the interpreter environment:

```>>> for eachVal in range(2,19,3):
print "value is ",eachVal

value is  2
value is  5
value is  8
value is  11
value is  14
value is  17
```

range() Abbreviated Syntax

range() also has a simple format, which takes one or both integer arguments:
range( start=0, end)
Given both values, this shortened version of range() is exactly the same as the long version of range() taking two parameters with step defaulting to 1. However, if given only a single value, start defaults to zero, and range() returns a list of numbers from zero up to the argument end:

```>>> range(5)
[0, 1, 2, 3, 4]
```

We will now take this to the Python interpreter and plug in for and print statements to arrive at:

```>>> for python in range(5):
print python

0
1
2
3
4
```