How to Create Range of Floats in Python

You'll notice when attempting to create a range of floats in Python like this:

 

for i in range(0, 1, 0.1):
print(i)

 

The following TypeError is returned:

 

TypeError: 'float' object cannot be interpreted as an integer

 

In this tutorial, we will show some of the different ways to create ranges of floats in Python that work.

 

NumPy Arange

NumPy contains the arange() function, which can create a range of numbers in customisable steps.

 

You may need to install NumPy, which is done using pip:

 

pip install numpy

 

NumPy Arange Syntax

 

np.arange (start, stop, step)

 

The first argument is the first number in the range, the second is number to finish before and the last is the size of the increment between each number.

 

Let's say we want to create a list of floats from 0.1 to 0.9, we would use NumPy arange() like this:

 

 

import numpy as np

numbers = np.arange(0.1, 1, 0.1)

print(numbers)
[0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]

 

 

To increment in steps of 0.2, we would need to change the third argument like this:

 

import numpy as np

numbers = np.arange(0.1, 1, 0.2)

print(numbers)
[0.1 0.3 0.5 0.7 0.9]

 

 

Range of Floats with List Comprehension

Using Python list comprehension we can divide integers into floats as they are added to a new list.

 

Here is an example of building a list of numbers from 0.1 to 0.9:

 

foo = [(x / 10 ) for x in range(0, 10)]

print(foo)
[0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]

 

 

Float Range of Tuples Example

We can use Python list comprehension to create a list of tuples containing floating-point numbers. In the example below, tuples containing numbers from 0.1 to 0.10 are created:

 

foo = [(x / 10 ) for x in range(0, 11)]

print(foo)
[0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]