Introducción
La range
en Python genera una secuencia de números enteros definiendo un punto inicial y final del rango. Generalmente se usa con el for
para iterar sobre una secuencia de números.
range()
funciona de manera diferente en Python 2 y 3.
En Python 2, hay dos funciones que le permiten generar una secuencia de números enteros range
y xrange
. Estas funciones son muy similares, con la principal diferencia de que range
devuelve una lista y xrange
devuelve un objeto xrange.
En Python 3, la xrange
se ha eliminado y la range
comporta de manera similar a xrange
En Python 3, el range
no es una función sino un tipo que representa una secuencia inmutable de números.
En este artículo, cubriremos los conceptos básicos del range
Sintaxis de Range () en Python
El range
tiene las siguientes formas:
range(stop)
range(start, stop[, step])
Los argumentos dados al range
deben ser enteros. No se permiten números flotantes ni otros tipos.
range
toma uno de los argumentos obligatorios y dos opcionales. Devuelve un objeto de rango que representa el rango dado y genera números a pedido.
Rango de Python (detener)
Cuando solo se proporciona un argumento, range
devuelve una secuencia de números, incrementada en 1
, comenzando desde 0
hasta stop - 1
.
Aquí está el tipo de rango en acción:
for i in range(5):
print(i)
La secuencia numérica generada comienza con 0
y termina con 4
(5-1):
0
1
2
3
4
Si el argumento es 0
o un range
entero negativo devuelve una secuencia vacía:
print(list(range(-5)))
Estamos convirtiendo el objeto de rango en una lista porque rango hace una evaluación perezosa de toda la secuencia. La salida es una lista vacía:
[]
Rango de Python (iniciar, detener)
Cuando se dan dos argumentos, range
devuelve una secuencia de números, incrementada en 1
, comenzando desde el start
hasta el stop - 1
.
Aquí hay un ejemplo:
for i in range(3, 5):
print(i)
3
4
El stop
debe ser mayor que el de start
. De lo contrario, la secuencia está vacía:
print(list(range(5, 3)))
[]
Puede utilizar 0
enteros positivos y negativos como argumentos:
print(list(range(-5, -3)))
[-5, -4]
print(list(range(-3, 0)))
[-3, -2, -1]
Rango de Python (inicio, parada, paso)
Cuando se dan tres argumentos, el range
devuelve una secuencia de números, incrementada o decrementada por step
, comenzando desde el start
hasta el stop - 1
.
Si el step
es positivo, el range
devuelve una secuencia que aumenta:
for i in range(0, 26, 5):
print(i)
0
5
10
15
20
25
Durante el incremento, el stop
debe ser mayor que el de start
. De lo contrario, la secuencia está vacía.
Si el step
es negativo, el range
devuelve una secuencia que disminuye:
for i in range(20, 4, -5):
print(i)
20
15
10
5
Durante el decremento, el stop
debe ser menor que el de start
. De lo contrario, la secuencia está vacía.
Si el step
es 0
, el script mostrará una excepción ValueError:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: range() arg 3 must not be zero
Conclusión
El range
permite generar una secuencia de números enteros. Se utiliza principalmente en bucles for