The *range()* function in Python is often used in **for** **statements** to define the number of loop iterations. This built-in function creates lists containing arithmetic progressions. The syntax of the *range()* function is:

range(start, stop [, step])

The** start** argument is the starting number. The **stop** argument is the last number (which is not included). The **step** argument is optional and defines the difference between each number in the sequence.

**step**argument is omitted, it defaults to

**1**. If the

**start**argument is omitted, it defaults to

**0**. Note that all arguments have to be

**integers**.

Here is an example. Let’s say that we want to loop through a for loop 10 times. We can use the **range(1, 11)** function inside a for statement to do that:

for i in range(1, 11): print ('This is the', i, 'iteration.')

When run, the code above gives the following output:

>>> This is the 1 iteration. This is the 2 iteration. This is the 3 iteration. This is the 4 iteration. This is the 5 iteration. This is the 6 iteration. This is the 7 iteration. This is the 8 iteration. This is the 9 iteration. This is the 10 iteration. >>>

Notice that we didn’t specify the **step** argument in the example above, so it defaulted to **1**. Also, notice that the last number is **10**, and not **11**. This is because the number defined as the **stop** argument isn’t included in the range.

Here is another example, this time with the **step** argument defined:

for i in range(1, 11, 2): print ('This will print only odd numbers:', i)

The output:

>>> This will print only odd numbers: 1 This will print only odd numbers: 3 This will print only odd numbers: 5 This will print only odd numbers: 7 This will print only odd numbers: 9 >>>