The range() function in Python generates an immutable sequence of integers within a specific range.
Syntax
The general syntax of range() is:
range(start, stop, step)
start: Initial value of the sequence (inclusive). If not specified, it defaults to 0.stop: Final value of the sequence (exclusive). This value is never part of the generated sequence.step: Increment between each number in the sequence. If not specified, it defaults to 1.
The range() function returns an object of type range, which is memory efficient and suitable for generating large number sequences.
range() is useful in contexts where you need to generate “fixed” numeric sequences that do not vary (for example, in for loops, mathematical operations, and data manipulations).
Basic Examples
Basic Usage
In this example, we use range to generate a sequence of numbers from 0 to 4, where the specified stop value is not included in the sequence.
# Generate a sequence from 0 to 4 (exclusive)
for i in range(5):
print(i)
# Output: 0, 1, 2, 3, 4
Specifying Start and Stop
Here, range is used to generate a sequence starting at 2 and ending at 8 (exclusive), showing how you can define both the start and stop of the sequence.
# Generate a sequence from 2 to 8 (exclusive)
for i in range(2, 9):
print(i)
# Output: 2, 3, 4, 5, 6, 7, 8
Specifying Step
This example shows how to generate a sequence starting at 1 and ending at 10, with an increment of 2 at each step.
# Generate a sequence from 1 to 10 with a step of 2
for i in range(1, 11, 2):
print(i)
# Output: 1, 3, 5, 7, 9
Iterating in Reverse Order
This example demonstrates how to use range to iterate in reverse order, starting from 10 and ending at 1.
# Iterate in reverse order
for i in range(10, 0, -1):
print(i)
# Output: 10, 9, 8, 7, 6, 5, 4, 3, 2, 1
Practical Examples
Create List from range()
This example shows how to use range to create a list of even numbers from 0 to 9, using the list function to convert the sequence generated by range into a list.
# Create a list of even numbers from 0 to 9
even_numbers = list(range(0, 10, 2))
print(even_numbers)
# Output: [0, 2, 4, 6, 8]
Generate Indices in a Loop
This example uses range to generate indices in a loop, which is useful when you need to access the elements of a sequence along with their indices.
# Use range() to generate indices in a loop
word = "Python"
for i in range(len(word)):
print(f"Index {i}: {word[i]}")
# Output: Index 0: P, Index 1: y, Index 2: t, Index 3: h, Index 4: o, Index 5: n
Combine with zip() to Iterate in Parallel
This example shows how to combine range with the zip function to iterate in parallel over two lists, allowing access to corresponding elements from both lists in each iteration.
# Use range() along with zip() to iterate in parallel over two lists
names = ["Ana", "Luis", "María"]
ages = [30, 25, 35]
for i in range(len(names)):
print(f"{names[i]} is {ages[i]} years old.")
# Output:
# Ana is 30 years old.
# Luis is 25 years old.
# María is 35 years old.
