Skip to main content

# Range Function

The `range` statement is a crucial feature in Python that enables developers to define a sequence of numbers within a specified range. It is often used in various programming applications to create loops and iterate over specific subsets of elements in a list or tuple. Range statement is a simple yet powerful tool that can enhance the functionality of your Python code. In this article, we will explore the different applications and functionalities of the range statement and how it can be used to boost the efficiency and effectiveness of your Python scripts.

## What is the range in Python?

The `range` function in Python generates a sequence of numbers within a given range. It is a built-in function in Python that can be used to create an iterable range object.

The `range` function takes three parameters: `start`, `stop`, and range `step`. The `start` parameter is the beginning of the range, `stop` is the end of the range (exclusive), and `step` is the difference between each number in the sequence.

### Example 1: Printing Numbers from 0 to 9

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

### Example 2: Printing Even Numbers from 2 to 10

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

In the second example, the `start` parameter is set as 2, the `stop` parameter is set as 11 (exclusive), and the `step` parameter is set as 2, which creates a sequence of even numbers from 2 to 10 (inclusive range).

Using the `range` function can be useful in many programming scenarios, such as looping through a set of numbers or generating a list of elements.

## How to use range with for Loop

This function can be used with a `for` loop to iterate through a certain range of numbers.

Here is an example of using `range` with a `for` loop to print out a sequence of integers:

``````for num in range(1, 10):
print(num)

# This will output:
#
# 1
# 2
# 3
# 4
# 5
# 6
# 7
# 8
# 9
``````

### How to Use `range` with Float Numbers

You can also use `range` to loop over a sequence of float numbers.

``````for i in range(0, 10):
print(i/10.0)

# This will output:
#
# 0.0
# 0.1
# 0.2
# 0.3
# 0.4
# 0.5
# 0.6
# 0.7
# 0.8
# 0.9
``````

In summary, `range` is a useful Python function that can be combined with a `for` loop to iterate over a sequence of numbers, including float values.

## How to Reverse a range

To reverse a range in Python, you can make use of the `list` function. First, create a range using the `range` function, and then pass it as an argument to the `list` function to convert `range` in list. After that, you can use the `[::-1]` slice notation to get the range backwards. Alternatively, you can also use the `reversed` function to get the reversed range.

### Using the `list` Function and Slice Notation

``````my_range = range(1, 6)
reversed_range = list(my_range)[::-1]
print(reversed_range)  ### Output

``````

### Using the `reversed` Function

``````my_range = range(1, 6)
reversed_range = list(reversed(my_range))
print(reversed_range)  ### Output

``````

In both examples, we first create a range from `1` to `6` using the `range` function. Then, we pass it as an argument to the `list` function to convert it into a list. Finally, we use either slice notation or the `reversed` function to get the range backwards.

## Range and Xrange

In Python 2, `range()` and `xrange()` are used to generate a sequence of numbers between two values. However, there is a difference between these two methods.

`range()` returns a list while `xrange()` returns an iterator. This means that `range()` generates the entire sequence and stores it in memory while `xrange()` generates the values on-the-fly as needed. Therefore, `xrange()` requires less memory and is more efficient for large sequences.

Here is an example of using `range()`:

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

# Output:
#
# 0
# 1
# 2
# 3
# 4
``````

And here is the same example using `xrange()` in Python 2:

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

# Output:
#
# 0
# 1
# 2
# 3
# 4
``````

Overall, `xrange()` is recommended for large sequences in Python 2 as it is more memory efficient.

## Using random with range function

Python's random module is a powerful tool for generating random numbers. One of the common use cases for `random` is to generate random integers within a specific range. This can be achieved by using the `range` function in conjunction with `random`.

``````import random

# Generate a random number in the range 0 to 9
num = random.randint(0, 9)

print(num)
``````

In the example above, we `import` the `random` module and use the `randint` function to generate a random integer between 0 and 9 (inclusive).

``````import random

# Generate 10 random integers in the range 0 to 9
nums = [random.randint(0, 9) for _ in range(10)]

print(nums)
``````

In the example above, we use a list comprehension with the `range` function to generate a list of 10 random integers between 0 and 9 (inclusive).

Using `random` with `range` function in Python is an easy way to generate random integers within a specific range. This can be useful in a variety of applications, from generating random test data to simulating gameplay or statistical processes.

### Contribute with us!

Do not hesitate to contribute to Python tutorials on GitHub: create a fork, update content and issue a pull request.

Python engineer, expert in third-party web services integration.
Updated: 05/03/2024 - 21:52
Reviewed and approved