Python range () Función: Float, List, For loop Ejemplos

¿Qué es Python Range?

Python range () es una función incorporada disponible con Python de Python (3.x), y proporciona una secuencia de números basada en el índice de inicio y finalización dado. En caso de que no se proporcione el índice de inicio, el índice se considera 0 y aumentará el valor en 1 hasta el índice de parada.

Por ejemplo, range (5) generará valores de 0,1,2,3,4. El rango de Python () es un comando muy útil y se usa principalmente cuando tienes que iterar usando for loop.

En este tutorial, aprenderá:

  • ¿Qué es Python Range?
  • Sintaxis
  • Función e historial de Python range ()
  • Usando rango ()
  • Uso de inicio y parada en rango ()
  • Usando inicio, parada y paso
  • Incrementar los valores en rango usando un paso positivo.
  • Intervalo inverso: disminución de los valores mediante un paso negativo.
  • Usando números flotantes en el rango de Python ()
  • Usando for-loop con Python range ()
  • Usando Python range () como una lista
  • Usando caracteres en el rango de Python ()
  • Cómo acceder a los elementos del rango
  • Ejemplo: obtener números pares usando range ()
  • Fusionar salidas de dos rangos ()
  • Usando range () con NumPy

Sintaxis

range(start, stop, step)

Parámetros

  • inicio: (opcional) el índice de inicio es un número entero y, si no se proporciona, el valor predeterminado es 0.
  • parada: el índice de parada decide el valor en el que debe detenerse la función de rango. Es una entrada obligatoria para la función de rango. El último valor será siempre 1 menos que el valor de parada.
  • paso: (opcional). El valor del paso es el número por el cual el siguiente número del rango debe incrementarse, por defecto, es 1.

Valor devuelto:

El valor de retorno es una secuencia de números desde el índice de inicio a fin dado.

Función e historial de Python range ()

Python range () se introdujo a partir de la versión 3 de python, antes de que xrange () fuera la función.

Tanto range como xrange () se utilizan para producir una secuencia de números.

A continuación se muestran las diferencias entre range y xrange ():

abarcar() xrange ()
El rango () da la secuencia de números y devuelve una lista de números. La función xrange () proporciona un objeto generador que necesita ser enlazado en un ciclo for para obtener los valores.
El rango () devuelve una lista. xrange () devuelve un objeto generador.
El método range () usa más memoria ya que la lista devuelta debe almacenarse en comparación con xrange (). Como xrange () devuelve un objeto generador, no da valores instantáneamente y debe usarse dentro del bucle for para obtener los valores.
El uso de memoria es mayor, por lo que la ejecución del código es lenta cuando se trabaja con un gran conjunto de datos. La ejecución del código es más rápida usando xrange ().

Usando rango ()

Este ejemplo muestra cómo imprimir los valores de 0 a 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

Dado que no se da el inicio, el inicio se considera como 0 y el último valor se da hasta 9. El último valor es siempre 1 menos que el valor dado, es decir, parada-1.

for i in range(10):print(i, end =" ")

Producción:

0 1 2 3 4 5 6 7 8 9

Uso de inicio y parada en rango ()

En el código, el valor inicial es 3 y el valor final es 10. Aquí el índice inicial es 3, por lo que la secuencia de números comenzará desde 3 hasta el valor final. El último valor de la secuencia será 1 menos que el valor de parada 10-1 = 9.

for i in range(3, 10):print(i, end =" ")

Producción:

3 4 5 6 7 8 9

Usando inicio, parada y paso

El valor de inicio es 3, por lo que la secuencia de números comenzará en 3. El valor de parada es 10, por lo que la secuencia de números se detendrá en (10-1), es decir, 9. El paso es 2, por lo que cada valor en la secuencia será se incrementará en 2. Si no se proporciona el valor del paso, el valor predeterminado del paso es 1.

for i in range(3, 10, 2):print(i, end =" ")

Producción:

3 5 7 9

Hasta ahora, hemos visto cómo la función range () da el valor incrementado para el valor de parada dado. Probemos ahora con un ejemplo para obtener el valor decrementado en el rango dado.

Incrementar los valores en rango usando un paso positivo.

El paso del parámetro en range () se puede utilizar para incrementar / disminuir los valores. Por defecto, es un valor positivo 1. Por lo tanto, siempre dará valores incrementados.

El valor del paso debe ser positivo en caso de que desee obtener valores incrementados como salida.

for i in range(1, 30, 5):print(i, end =" ")

Producción:

1 6 11 16 21 26

Intervalo inverso: disminución de los valores mediante un paso negativo.

El paso de parámetro con valor negativo en rango () se puede utilizar para obtener valores decrecientes. En el siguiente ejemplo, el valor del paso es negativo, por lo que la salida disminuirá del valor de rango dado.

for i in range(15, 5, -1):print(i, end =" ")

Producción:

15 14 13 12 11 10 9 8 7 6

El valor de inicio es 15, el valor de parada es 5 y el valor de paso es un número negativo, es decir, -1. Con las entradas anteriores, la función range () disminuirá el valor de 15 en adelante hasta que alcance el valor de parada, pero aquí la diferencia es que el último valor será parada + 1.

Usando números flotantes en el rango de Python ()

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 como 10,5.

La salida es:

Traceback (most recent call last):File "python_range.py", line 1, in for i in range(10.5):TypeError: 'float' object cannot be interpreted as an integer

Python da un error ya que la función range () no admite números de punto flotante para inicio, parada y paso.

Usando for-loop con Python range ()

En este ejemplo usaremos una matriz de números y veamos cómo usar la iteración de la matriz dentro del bucle for usando range ()

Ejemplo:

arr_list = ['Mysql', 'Mongodb', 'PostgreSQL', 'Firebase']for i in range(len(arr_list)):print(arr_list[i], end =" ")

Producción:

MysqlMongodb PostgreSQL Firebase

En el ejemplo anterior, hemos utilizado len (arr_list) como valor de parada. El ciclo for iterará hasta el valor de parada, es decir, la longitud de la matriz y será 4, ya que tenemos cuatro elementos en arr_list. El valor de inicio será 0 y el paso será 1. Por lo tanto, los valores comenzarán desde 0 y se detendrán en 3, es decir, la longitud de la matriz -1 significa 4 -1 = 3.

Usando Python range () como una lista

En este ejemplo, verá cómo hacer uso de la salida del rango como una lista.

Ejemplo:

print(list(range(10)))

Producción:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Puede ver que la salida es un formato de lista. No fue necesario repetir 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 usado números enteros en python range (). También hemos visto que los números de punto flotante no son compatibles con el rango de Python. Intentemos ver el resultado de lo que sucede cuando usamos caracteres.

Ejemplo:

for c in range ('z'):print(c, end =" ")

Producción:

Traceback (most recent call last):File "python_range.py", line 1, in for c in range ('z'):TypeError: 'str' object cannot be interpreted as an integer

Lanza un error que dice 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 los resultados deseados que se muestran 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)))

Producción:

['a', 'b', 'c', 'd', 'e', 'f', 'g']

Cómo acceder a los elementos del rango

Puede hacer uso de un bucle for para obtener los valores del rango o usar el índice para acceder a los elementos de range ().

Usando for-loop

Ejemplo:

for i in range(6):print(i)

Producción:

012345

Usando índice

El índice se usa 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 rango del valor (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)

Producción:

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)

Usando list ()

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)))

Producción:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Da la salida de la lista para el rango dado.

Ejemplo: obtener números pares usando range ()

El uso de range () obtendrá la lista de números pares en el rango dado como entrada. Los parámetros para range () son, start es 2, stop es 20 y step es 2, por lo que los valores se incrementarán en 2 y darán números pares hasta stop-2.

Ejemplo:

for i in range(2, 20, 2):print(i, end =" ")

Producción:

2 4 6 8 10 12 14 16 18

Fusionar salidas de dos rangos ()

En este ejemplo, se concatenarán 2 funciones range () con la ayuda de la función itertools module chain ().

Ejemplo:

from itertools import chainprint("Merging two range into one")frange =chain(range(10), range(10, 20, 1))for i in frange:print(i, end=" ")

Producción:

Merging two range into one0 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 la función arange () que funciona y da una salida similar a range (). El arreglo () toma los mismos parámetros que rango ().

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, se muestre un error que diga que no se ha encontrado el módulo numpy, debe instalar el módulo como se muestra en el paso 2.

Paso 2 : instala NumPy

pip install numpy

Paso 3 : Ejemplo de trabajo de arange () usando NumPy

import numpy as npfor i in np.arange(10):print(i, end =" ")

Producción:

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 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 npfor i in np.arange(0.5, 1.5, 0.2):print(i, end =" ")

Producción:

0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998

El resultado que obtenemos es un poco extraño, algunos de los números flotantes se muestran con 16 lugares decimales. Esto sucede debido a la complejidad de almacenar números flotantes decimales en formato binario. También puede redondear los valores si es necesario y limitarlos a los lugares decimales que necesite.

Resumen:

  • Python range () es una función incorporada disponible con Python de Python (3.x), y proporciona una secuencia de números basada en el índice de inicio y finalización dado. En caso de que no se proporcione el índice de inicio, el índice se considera 0 e incrementará el valor hasta el índice de parada.
  • Python range () se introdujo desde la versión 3 de python, antes de que xrange () fuera la función.
  • El rango () da la secuencia de números y devuelve una lista de números. La función xrange () proporciona un objeto generador que necesita ser enlazado en un ciclo for para obtener los valores.
  • El paso del parámetro en range () se puede utilizar para incrementar / disminuir los valores. Por defecto, es un valor positivo 1. Por lo tanto, siempre dará valores incrementados.
  • Python da un error para los números de punto flotante ya que la función range () solo admite valores enteros.
  • Se puede acceder a los valores de range () usando for-loop, usando index y list ()
  • El módulo NumPy tiene la función arange () que funciona y da una salida similar a range (). El arange () toma los mismos parámetros que range ().
  • Es posible obtener la secuencia de punto flotante NumPy arange () que no es compatible con range ().

Articulos interesantes...