Python Función range(): Ejemplos de flotador, lista y bucle For
⚡ Resumen inteligente
Python range() es una función integrada que genera una secuencia inmutable de números enteros desde un valor inicial hasta un valor final, sin incluir este último, utilizando un paso opcional para controlar el incremento.

¿Qué es Python ¿Rango?
Python range() es una función incorporada disponible con Python desde Python (3.x) y proporciona una secuencia de números en función del índice inicial y final indicados. En caso de que no se indique el índice inicial, el índice se considera 0 y se incrementará el valor en 1 hasta el índice final.
Por ejemplo, range(5) generará los valores 0, 1, 2, 3, 4. Python range() es un comando muy útil y se usa principalmente cuando tienes que iterar usando un en bucle.
Sintaxis
La sintaxis de la función range() se muestra a continuación:
range(start, stop, step)
Parámetros
- comienzo: (opcional) El índice inicial es un número entero y, si no se proporciona, el valor predeterminado es 0.
- parada: El índice de parada determina el valor en el que debe detenerse la función de rango. Es un dato de entrada obligatorio para la función de rango. El último valor siempre será uno menos que el valor de parada.
- paso: (opcional) El valor del paso es el número por el cual se debe incrementar el siguiente número en el rango; por defecto, es 1.
Valor de retorno
El valor de retorno es una secuencia de números desde el índice inicial hasta el índice final indicado.
Python range() Función e historial
Python range() ha sido introducido desde Python versión 3; antes de eso, xrange() era la función.
Tanto range() como xrange() se utilizan para producir una secuencia de números.
A continuación se detallan las diferencias entre range() y xrange():
| distancia() | xrange () |
|---|---|
| El rango() proporciona la secuencia de números y devuelve una lista de números. | La función xrange() proporciona un objeto generador que debe repetirse en un bucle for para obtener los valores. |
| El rango() devuelve una lista. | xrange() devuelve un objeto generador. |
| El método range() utiliza más memoria ya que la lista devuelta debe almacenarse en comparación con xrange(). | Como xrange() devuelve un objeto generador, no proporciona valores instantáneamente y debe usarse dentro de un bucle for para obtenerlos. |
| El consumo de memoria es mayor, por lo que la ejecución del código es lenta al trabajar con un conjunto de datos muy grande. | La ejecución del código es más rápida usando xrange(). |
Usando rango ()
Este ejemplo muestra cómo imprimir los valores del 0 al 9 usando range().
El valor utilizado en el rango es 10, por lo que la salida es 0 1 2 3 4 5 6 7 8 9.
Como no se proporciona el valor inicial, se considera que el valor inicial es 0 y se proporciona el último valor hasta 9. El último valor siempre es 1 menos que el valor dado, es decir, stop-1.
for i in range(10): print(i, end =" ")
Salida:
0 1 2 3 4 5 6 7 8 9
Usando inicio y parada en rango()
En el código, el valor inicial es 3 y el valor final es 10. Como el índice inicial es 3, la secuencia de números comenzará desde 3 hasta el valor final. El último valor de la secuencia será uno menos que el valor final: 10 - 1 = 9.
for i in range(3, 10): print(i, end =" ")
Salida:
3 4 5 6 7 8 9
Usando inicio, parada y paso
El valor inicial es 3, por lo que la secuencia de números comenzará en 3. El valor final es 10, por lo que la secuencia de números terminará en (10-1), es decir, 9. El paso es 2, por lo que cada valor de la secuencia se incrementará en 2. Si no se especifica el valor del paso, se utilizará el valor predeterminado de 1.
for i in range(3, 10, 2): print(i, end =" ")
Salida:
3 5 7 9
Hasta ahora, hemos visto cómo la función range() devuelve el valor incrementado para el valor de parada dado. Ahora veamos un ejemplo para obtener el valor decrementado en el rango dado.
Incrementar los valores en el rango usando un paso positivo
El parámetro step en range() se puede usar para incrementar o decrementar los valores. Por defecto, es un valor positivo, 1. Por lo tanto, siempre dará como resultado valores incrementados.
El valor del paso debe ser positivo si se desean valores incrementados como resultado.
for i in range(1, 30, 5): print(i, end =" ")
Salida:
1 6 11 16 21 26
Reverse Rango: Disminución de los valores mediante pasos negativos
El parámetro `step` con un valor negativo en la función `range()` permite obtener valores decrementados. En el ejemplo siguiente, el valor de `step` es negativo, por lo que el resultado será un valor decreciente respecto al valor de `range` especificado.
for i in range(15, 5, -1): print(i, end =" ")
Salida:
15 14 13 12 11 10 9 8 7 6
El valor inicial es 15, el valor final es 5 y el valor de paso es un número negativo, es decir, -1. Con los datos anteriores, la función range() disminuirá el valor desde 15 en adelante hasta alcanzar el valor final, pero la diferencia radica en que el último valor será el valor final + 1.
Usando números flotantes en Python distancia()
Trabajemos ahora en el rango() usando números de punto flotante.
Ejemplo:
for i in range(10.5): print(i, end =" ")
En el ejemplo anterior, hemos utilizado un valor de parada de 10.5.
El resultado es:
Traceback (most recent call last): File "python_range.py", line 1, in <module> for i in range(10.5): TypeError: 'float' object cannot be interpreted as an integer
Python Se produce un error ya que la función range() no admite números de punto flotante para inicio, fin y paso.
Usando bucle for con Python distancia()
En este ejemplo, utilizaremos una matriz de números y veremos cómo iterar sobre ella dentro de un bucle for usando range().
Ejemplo:
arr_list = ['Mysql', 'Mongodb', 'PostgreSQL', 'Firebase'] for i in range(len(arr_list)): print(arr_list[i], end =" ")
Salida:
MysqlMongodb PostgreSQL Firebase
En el ejemplo anterior, hemos usado len(arr_list) como valor de parada. El bucle for iterará hasta el valor de parada, es decir, la longitud del array, que será 4, ya que tenemos cuatro elementos en arr_list. El valor inicial será 0 y el paso será 1, por lo que los valores comenzarán en 0 y terminarán en 3, es decir, la longitud del array menos 1, lo que significa que 4 - 1 = 3.
El uso de Python rango() como una lista
En este ejemplo veremos cómo hacer uso de la salida del rango como una lista.
Ejemplo:
print(list(range(10)))
Salida:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Puede ver que la salida es un formato de lista. No fue necesario hacer un bucle en el rango() y usando el método list() pudimos convertir directamente la salida del formato de rango a lista.
Usando caracteres en el rango de Python()
Hasta ahora, hemos utilizado números enteros en Python range(). También hemos visto que los números de punto flotante no son compatibles con Python. Intentemos ver el resultado de lo que sucede cuando usamos caracteres.
Ejemplo:
for c in range ('z'):
print(c, end =" ")
Salida:
Traceback (most recent call last):
File "python_range.py", line 1, in <module>
for c in range ('z'):
TypeError: 'str' object cannot be interpreted as an integer
Genera un error que indica que una cadena no se puede interpretar como un número entero.
Para obtener la lista de alfabetos, puede personalizar el código y obtener el resultado deseado, como se muestra a continuación:
Ejemplo:
def get_alphabets(startletter, stopletter, step):
for c in range(ord(startletter.lower()), ord(stopletter.lower()), step):
yield chr(c)
print(list(get_alphabets("a", "h", 1)))
Salida:
['a', 'b', 'c', 'd', 'e', 'f', 'g']
Cómo acceder a los elementos del rango
Puede utilizar un bucle for para obtener los valores del rango o utilizar el índice para acceder a los elementos del rango().
Usando bucle for
Ejemplo:
for i in range(6):
print(i)
Salida:
0 1 2 3 4 5
Usando índice
El índice se utiliza con rango para obtener el valor disponible en esa posición. Si el valor del rango es 5, para obtener el valor inicial, puede usar el rango(5)[0] y el siguiente valor rango(5)[1] y así sucesivamente.
Ejemplo:
startvalue = range(5)[0]
print("The first element in range is = ", startvalue)
secondvalue = range(5)[1]
print("The second element in range is = ", secondvalue)
lastvalue = range(5)[-1]
print("The first element in range is = ", lastvalue)
Salida:
The first element in range is = 0 The second element in range is = 1 The first element in range is = 4
Usando lista()
Este método imprimirá todos los elementos del rango(). Usando list() devolverá los elementos de range() en formato de lista.
Ejemplo:
print(list(range(10)))
Salida:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Proporciona la salida de la lista para el rango dado.
Ejemplo: obtener números pares usando range()
Al usar range() se obtiene la lista de números pares dentro del rango especificado. Los parámetros de range() son: inicio (2), fin (20) y paso (2). Por lo tanto, los valores se incrementarán de dos en dos, generando números pares hasta fin menos 2.
Ejemplo:
for i in range(2, 20, 2): print(i, end =" ")
Salida:
2 4 6 8 10 12 14 16 18
Fusionar salidas de dos rangos()
En este ejemplo, concatenaremos dos funciones range() con la ayuda de la función chain() del módulo itertools.
Ejemplo:
from itertools import chain print("Merging two range into one") frange =chain(range(10), range(10, 20, 1)) for i in frange: print(i, end=" ")
Salida:
Merging two range into one 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Usando range() con NumPy
El módulo NumPy tiene una función arange() que funciona y produce un resultado similar al de range(). La función arange() acepta los mismos parámetros que range().
Sintaxis:
arange(start, stop, step)
Para trabajar con NumPy, siga los pasos que se indican a continuación.
Paso 1: Importar módulo NumPy
import numpy
En caso de que, durante la ejecución, aparezca un error que indique que no se encuentra el módulo numpy, deberá instalar el módulo como se muestra en el paso 2.
Paso 2: Instalar NumPy
pip install numpy
Paso 3: Ejemplo práctico de arange() usando NumPy
import numpy as np for i in np.arange(10): print(i, end =" ")
Salida:
0 1 2 3 4 5 6 7 8 9
Números de coma flotante usando NumPy arange()
No es posible obtener la secuencia de punto flotante usando range(), pero sí es posible usando NumPy arange().
Ejemplo:
El rango que queremos es de 0.5 a 1.5. El valor se incrementará en 0.2.
import numpy as np for i in np.arange(0.5, 1.5, 0.2): print(i, end =" ")
Salida:
0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998
El resultado que obtenemos es un poco extraño; algunos números decimales se muestran con 16 cifras decimales. Esto se debe a la complejidad de almacenar números decimales en formato binario. Si es necesario, también puede redondear los valores y limitarlos a la cantidad de decimales que requiera.
