El tipo Python range
genera una secuencia de enteros definiendo un punto inicial y final del rango. Generalmente se usa con el for
bucle 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
función se eliminó y range
se comporta de manera similar a Python 2 xrange
. Python 3 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
tipo Python 3.
range()
Sintaxis de Python
El range
constructor toma las siguientes formas:
range(stop)
range(start, stop[, step])
Los argumentos proporcionados al range
constructor deben ser números enteros. No se permiten números flotantes y otros tipos.
range
toma un argumento requerido y dos opcionales. Devuelve un objeto de rango que representa el rango dado y genera los números a pedido.
Pitónrange(stop)
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 de números generada comienza 0
y termina con 4
(5-1):
0
1
2
3
4
Si el argumento es 0
o un entero negativo range
devuelve una secuencia vacía:
print(list(range(-5)))
Estamos convirtiendo el objeto de rango en una lista porque el rango hace una evaluación perezosa de la secuencia de enteros. La salida es una lista vacía:
[]
Pitónrange(start, stop)
Cuando se proporcionan dos argumentos, range
devuelve una secuencia de números, incrementada por 1
, comenzando desde start
hasta stop - 1
.
Aquí hay un ejemplo:
for i in range(3, 5):
print(i)
3
4
El stop
argumento debe ser mayor que start
. De lo contrario, la secuencia está vacía:
print(list(range(5, 3)))
[]
Puede usar 0
enteros positivos y negativos como argumentos:
print(list(range(-5, -3)))
[-5, -4]
print(list(range(-3, 0)))
[-3, -2, -1]
Pitónrange(start, stop, step)
Cuando se dan tres argumentos, range
devuelve una secuencia de números, incrementada o decrementada por step
, comenzando desde start
hasta stop - 1
.
Si step
es positivo, range
devuelve una secuencia que se incrementa:
for i in range(0, 26, 5):
print(i)
0
5
10
15
20
25
Al incrementar, el stop
argumento debe ser mayor que start
. De lo contrario, la secuencia está vacía.
Si step
es negativo, range
devuelve una secuencia que decrece:
for i in range(20, 4, -5):
print(i)
20
15
10
5
Al decrementar, el stop
argumento debe ser menor que start
. De lo contrario, la secuencia está vacía.
Si step
se 0
genera 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 tipo Python range
le permite generar una secuencia de enteros. Se utiliza principalmente en for
bucles.
Si tiene alguna pregunta o comentario, no dude en dejar un comentario.
0 Comentarios