Saltar al contenido

Flotador, lista, para ejemplos de bucle

¿Qué es una gama Python?

El rango de Python () es una función incorporada que está disponible con Python desde Python (3.x) y proporciona una secuencia de números basada en el índice de inicio y fin dado. Cuando no se proporciona el índice inicial, se considera que el índice es 0 y aumentará el valor en 1 hasta el índice de parada.

Por ejemplo, un rango de (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 repetir un ciclo.

En este tutorial, aprenderá:

Proporción


range(start, stop, step)

Parámetros

Valor devuelto:

El valor de retorno es un conjunto de números del índice inicial de parada a parada.

Función e historial de Python Range ()

El rango Python () se introdujo a partir de la versión 3 de python, antes de que xrange () tuviera esa función.

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

La diferencia entre un rango y xrange () es la siguiente:

distancia ()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 se debe colocar en un bucle para obtener los valores.
El rango () devuelve una lista.xrange () devuelve un objeto generador.
El método range () usa más memoria porque la lista devuelta debe almacenarse en comparación con xrange ().Como xrange () devuelve un objeto generador, no da valores inmediatos y debe usarse dentro del bucle para obtener los valores.
El uso de la memoria aumenta, por lo que la ejecución del código es lenta cuando se trabaja con un gran conjunto de datos.El código se ejecuta más rápido usando xrange ().

Usando un rango ()

Este ejemplo muestra cómo imprimir los valores de 0 a 9 usando un rango ().

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 el inicio no se da, el inicio se considera 0 y el último valor se asigna a 9. El último valor 1 es siempre menor 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

Usando un rango de inicio y finalización en ()

En el código, el valor inicial es 3 y el valor de parada es 10. Este es el índice inicial 3, por lo que la secuencia de números comienza desde 3 hasta el valor de parada. El último valor de la secuencia 1 será menor 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

Arrancar, parar y pisar

El valor inicial es 3, por lo que la secuencia de números comienza en 3. El valor de parada es 10, por lo que la secuencia de números se detiene en (10-1), es decir, 9. El paso es 2, por lo que cada valor en la secuencia aumentará 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 una función de rango () da el valor incremental al valor de parada dado. Probemos ahora con un ejemplo para encontrar el valor reducido en el rango dado.

Aumente los valores en el rango usando un paso positivo.

El paso del parámetro en el rango () se puede utilizar para aumentar / disminuir los valores. De forma predeterminada, 1 es un valor positivo, por lo que siempre dará valores incrementales.

El valor del paso debe ser positivo en caso de que desee valores incrementales como ouput.


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

Producción:


1 6 11 16 21 26

Intervalo inverso: reduce los valores con un paso negativo.

El paso de parámetro con un valor negativo en rango () se puede utilizar para obtener valores reducidos. En el siguiente ejemplo, el valor de fase es negativo, por lo que la salida se reducirá 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 inicial es 15, el valor de parada es 5 y el valor de paso numérico negativo, es decir, -1. Con las entradas arriba () la función reducirá el valor de 15 en adelante hasta que alcance el valor de parada, pero aquí la diferencia es que el último valor de parada es +1.

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

Trabajemos ahora en el rango () usando números flotantes.

Ejemplo:


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

En el ejemplo anterior utilizamos un valor de parada como 10,5.

La salida 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 da un error porque la función de rango () no admite números flotantes para inicio, parada y paso.

Usando un over-loop con un rango de Python ()

En este ejemplo usaremos un conjunto de números y, veamos cómo repetir la matriz dentro de un bucle-bucle usando un rango ()

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 usamos len (arr_list) como valor de parada. El ciclo cambiará al valor de parada, es decir, la longitud de la matriz y eso es 4, porque tenemos cuatro elementos en la lista arr_list. El valor inicial es 0 y el paso 1, por lo que los valores comienzan desde 0 y terminan en 3, es decir, longitud de matriz -1, lo que significa 4 -1 = 3.

Usando Python range () como una lista

En este ejemplo, veremos cómo usar 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 doblar el rango () y usando el método de lista () pudimos convertir la salida directamente del rango al formato de lista.

Usando caracteres en el rango de Python ()

Hasta ahora, hemos usado números enteros en el rango de python (). También vimos que los números flotantes no son compatibles con el rango de Python. Intentemos ver el resultado de los clics 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 <module>
    for c in range ('z'):
TypeError: 'str' object cannot be interpreted as an integer

Comete un error al decir que una cadena no se puede interpretar como un número entero.

Para 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 usar un ciclo superior para obtener los valores del rango o usar el índice para acceder a los elementos de un rango ().

Usando for-loop

Ejemplo:


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

Producción:


0
1
2
3
4
5

Usando un índice

El índice con un rango se usa para encontrar el valor disponible en esa ubicación. Si el valor del rango es 5, para obtener el valor inicial, puede usar range (5)[0] y siguiente rango de valores (5)[1] y así.

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 (). El uso de list () devolverá los elementos de range () al 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 al rango dado.

Ejemplo: Encuentre números pares usando range ()

Usando un rango () obtendrá una lista de números pares en el rango dado como entrada. Los parámetros para range () son, el inicio es 2, la parada es 20 y el paso es 2, por lo que los valores se incrementarán en 2 y darán números iguales a 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 realizarán 2 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=" ")

Producción:


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 un rango () con NumPy

El módulo NumPy tiene una función arange () que funciona y da una salida similar como range (). La disposición () toma 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

Por ejemplo, mientras se ejecuta, da un error que dice que no se encontró un módulo con baches, debe instalar el módulo como se muestra en el paso 2.

Paso 2: Instalar NumPy


pip install numpy

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


import numpy as np 

for  i in np.arange(10):
   print(i, end =" ")        

Producción:


0 1 2 3 4 5 6 7 8 9

Números flotantes usando NumPy arange ()

La secuencia flotante no se puede encontrar usando range (), pero se puede usar NumPy arange ().

Ejemplo:

Nuestro rango es de 0,5 a 1,5. El valor incremental será de aproximadamente 0,2.


import numpy as np 

for  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 ocurre 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 desee.

Resumen: