The range()
function in Python generates an immutable sequence of integers in 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 a range
object, which is memory efficient and suitable for generating large sequences of numbers.
range()
is useful in contexts where you need to generate “fixed” numerical sequences that do not vary (for example in for
loops, mathematical operations, and data manipulation).
Basic Examples
Basic Usage
In this example, we use range to generate a sequence of numbers from 0 to 4, where the specified final 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 that starts at 2 and ends at 8 (exclusive), showing how both the start and stop of the sequence can be defined.
# 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
In this example, it shows how to generate a sequence that starts at 1 and ends 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 a List from range()
In this example, it 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
In this example, range is used 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 the corresponding elements of 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.