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.
