Ir al contenido principal

Tutorial sobre la función range() de Python

Aprende sobre la función range() de Python y sus capacidades con la ayuda de ejemplos.
Actualizado 29 ago 2025  · 7 min de lectura

La función range() es muy popular y se utiliza ampliamente en Python, especialmente cuando se trabaja con bucles for y, en ocasiones, también con bucles while. Vale la pena conocer y dominar la función range(), ya que hacerlo te abrirá muchas puertas: range() se utiliza en todo, desde controlar el flujo de un programa hasta recorrer conjuntos de datos que estás utilizando para el análisis de datos. 

Si acabas de empezar con Python y te gustaría aprender más, haz el curso Introducción a la ciencia de datos en Python de DataCamp.

¿Qué es la función range() en Python?

La función range() devuelve una secuencia de números y es inmutable, lo que significa que su valor es fijo. La función range() toma uno o como máximo tres argumentos, a saber, el valor start y el valor stop, junto con el tamaño step.

range() se introdujo en Python3. En Python2 se utilizaba una función similar, xrange(), que tenía un comportamiento algo diferente. Entre otras cosas, xrange() devuelve un objeto generador y consume menos memoria, mientras que range(), por otro lado, devuelve una lista o secuencia de números.

Parte de la razón por la que la función range() es útil es porque solo almacena los valores start, stop y step, por lo que consume menos memoria en comparación con una lista o una tupla.

Sintaxis de la función range() de Python

La función range() se puede representar de tres maneras diferentes, o puedes pensar en ellas como tres parámetros range():

  • range(stop_value): Por defecto, el punto de partida aquí es cero.
  • range(start_value, stop_value): Esto genera la secuencia basada en el valor inicial y final.
  • range(start_value, stop_value, step_size): Genera la secuencia incrementando el valor inicial utilizando el tamaño del paso hasta alcanzar el valor final.
Ejemplo de la función range() en Python
Función range() de Python. Imagen del autor. 

También podemos comprobar el tipo de la función range() envolviendo range() en type().

my_range = range(100)
print(type(my_range))

# Expected output: <class 'range'>

Ejemplos de la función range() de Python

Veamos ahora algunos ejemplos para que puedas practicar y dominar el uso de range().

Usar range() en Python para imprimir una secuencia de números

Comencemos con un ejemplo sencillo de impresión de una secuencia de diez números, que cubrirá tu primer parámetro range(). Para lograrlo, solo tendrás que introducir el valor stop. Dado que Python funciona con indexación basada en cero, la secuencia comenzará en cero y terminará en el número especificado, es decir, n-1, donde n es el número especificado en la función range().

my_range = range(10)

for num in my_range:
	print(num)

# Expected output:
# 0
# 1
# 2
# 3
# 4
# 5
# 6
# 7
# 8
# 9

Como era de esperar, la celda anterior devuelve una secuencia de números que comienza en 0 y termina en 9.

Uso de range() con list() en Python

También puedes utilizar la función range como argumento de una lista, en cuyo caso obtendrás una lista de números con una longitud igual al valor de parada, como se muestra a continuación:

my_range = list(range(10))
print(my_range)

range_length = len(my_range)
print(range_length)

# Expected output:
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 10

Uso de start, stop y step en Python range()

A continuación, veamos otra forma de trabajar con la función range(). Aquí especificarás tanto el valor start como el valor stop.

my_range = range(5, 10)
print(my_range)

# Expected output: range(5, 10)
for num in range(5,10):
    print(num)

# Expected output:
# 5
# 6
# 7
# 8
# 9

Del mismo modo, puedes utilizar la función range() para imprimir también los valores enteros negativos.

for num in range(-5,0):
    print(num)

# Expected output:
# -5
# -4
# -3
# -2
# -1

Ahora añadamos el tercer parámetro, es decir, el tamaño del área de trabajo ( step ) a la función de relleno ( range() ), y veamos cómo afecta al resultado. Especificarás el punto start (Punto de entrada) como 50, el valor stop (Punto de salida) como 1000 y el tamaño step (Tamaño de la ventana) como 100. La siguiente función de rango debería generar una secuencia que comience en 50 y se incremente en pasos de 100.

my_range = range(50,1000,100)
print(my_range)

# Expected output: range(50, 1000, 100)

Notarás que imprimirá todos los números pares.

for num in range(50,1000,100):
    print(num)

# Expected output:
# 50
# 150
# 250
# 350
# 450
# 550
# 650
# 750
# 850
# 950

Una nota sobre range() y los valores flotantes en Python

Es importante tener en cuenta que la función range() solo funciona cuando el valor especificado es un número entero o un número completo. No admite el tipo de datos flotantes ni el tipo de datos de cadena. Sin embargo, puedes pasarle valores enteros tanto positivos como negativos. Veamos qué sucede cuando intentas pasar valores flotantes.

for num in range(0.2,2.4):
    print(num)

# Expected output:
# TypeError: 'float' object cannot be interpreted as an integer

Seguramente te habrás devanado los sesos al menos una vez al intentar invertir una lista enlazada de valores enteros en lenguaje C. Sin embargo, en Python, esto se puede lograr con la función range() simplemente intercambiando start y stop y añadiendo un tamaño de paso negativo. ¿No es así de sencillo? ¡Vamos a averiguarlo!

for num in range(100,10,-10):
    print(num)

# Expected output:
# 100
# 90
# 80
# 70
# 60
# 50
# 40
# 30
# 20

Usar range() para hallar la suma de una lista

Supongamos que tienes una lista de valores enteros y deseas hallar la suma de la lista, pero utilizando la función range(). Averigüemos si se puede hacer.

En primer lugar, definirás la lista que contiene valores enteros. A continuación, inicializa un contador en el que almacenarás el valor cada vez que iteres sobre la lista y también suma el valor actual de la lista al valor anterior del contador.

Para acceder a los elementos de la lista, aplicarás la función range() al length de la lista y, a continuación, accederás a los elementos de la lista omitiendo el índice i, que comenzará desde cero y terminará en la longitud de la lista.

list1 = [2,4,6,8,10,12,14,16,18,20]
count = 0

for i in range(len(list1)):
    count = count + list1[i]
    print(count)
print('sum of the list:', count)

# Expected output:
# 2
# 6
# 12
# 20
# 30
# 42
# 56
# 72
# 90
# 110
# sum of the list: 110

Usar range() con itertools para concatenar una lista

También puedes concatenar dos o más funciones range() utilizando la clase del paquete itertools llamada chain. Y no solo la función range, sino que incluso se pueden concatenar listas, tuplas, etc. Recuerda que el método chain devuelve un objeto generador, y para acceder a los elementos de ese objeto generador, puedes utilizar un bucle for o utilizar list y pasar el objeto generador como argumento.

from itertools import chain

a1 = range(10,0,-2)
a2 = range(30,20,-2)
a3 = range(50,40,-2)

final = chain(a1,a2,a3)

print(final) #generator object

# Expected output: <itertools.chain object at 0xae6330>
print(list(final))

# Expected output:
# [10, 8, 6, 4, 2, 30, 28, 26, 24, 22, 50, 48, 46, 44, 42]

Python range() y comparaciones de igualdad

Puedes aplicar comparaciones de igualdad entre funciones de range(). Dadas dos funciones e range() es, si representan la misma secuencia de valores, se consideran iguales. Dicho esto, dos funciones iguales range() no necesitan tener los mismos atributos start, stop y step. Entendámoslo con un ejemplo.

# range(0, 10, 3) = [0, 3, 6, 9]
# range(0, 11, 3) = [0, 3, 6, 9]

print(range(0, 10, 3) == range(0, 11, 3))

# Expected output: True
# range(0, 10, 3) = [0, 3, 6, 9]
# range(0, 11, 2) = [0, 2, 4, 6, 8, 10]

print(range(0, 10, 3) == range(0, 11, 2))

# Expected output: False

Como puedes observar en los resultados anteriores, aunque los parámetros de la función range() son diferentes, se consideran iguales, ya que la secuencia de ambas funciones es la misma. En el segundo ejemplo, al cambiar el tamaño de step, la comparación pasa a ser False.

Conclusión

Enhorabuena por haber completado el tutorial. Quizás quieras jugar un poco con la función range() y encontrar una forma de personalizarla para que acepte otros tipos de datos además de los enteros.

Si, después de leerlo, crees que te podría resultar útil practicar con las funciones de Python, echa un vistazo a nuestros tutoriales Funciones de Python y Guía para principiantes sobre Bucle for en Python. Si deseas seguir un itinerario de aprendizaje estructurado, echa un vistazo a nuestro curso Writing Efficient Python Code (Escribir código Python eficiente) de DataCamp, que no solo trata en detalle la función range(), sino que también aborda conceptos de programación más generales que te ayudarán a escribir código realmente eficiente sin mucha sobrecarga. 

Temas

Más información sobre Python

Curso

Caja de herramientas Python

4 h
307.7K
Sigue desarrollando tus habilidades de ciencia de datos y aprende sobre iteradores y comprensión de listas.
Ver detallesRight Arrow
Comienza el curso
Ver másRight Arrow
Relacionado

Tutorial

Función Print() de Python

Aprenda cómo puede aprovechar la capacidad de una simple función de impresión de Python de varias maneras con la ayuda de ejemplos.
Aditya Sharma's photo

Aditya Sharma

Tutorial

Tutorial de funciones de Python

Un tutorial sobre funciones en Python que cubre cómo escribir funciones, cómo invocarlas y mucho más.
Karlijn Willems's photo

Karlijn Willems

Tutorial

Método index() de Python List explicado con ejemplos

Aprende a utilizar la función index() de Python para encontrar la posición de elementos en listas.
Sejal Jaiswal's photo

Sejal Jaiswal

Tutorial

Tutorial de Python String format()

Aprende a formatear cadenas en Python.
DataCamp Team's photo

DataCamp Team

Tutorial

Tutorial Python Docstrings : Ejemplos y Formato de Cadenas Doc Pydoc, Numpy, Sphinx

Aprende sobre las Docstrings de Python. Encuentra diferentes ejemplos y tipos de formato de docstrings para Sphinx, Numpy y Pydoc.
Aditya Sharma's photo

Aditya Sharma

Ver másVer más