Articles

Python randrange() y randint() para generar números enteros aleatorios dentro de un rango

En este artículo, veremos cómo usar las funciones Python random.randrange() y random.randint() para generar un número aleatorio. Usando las funciones randrange() y randint() de un módulo aleatorio podemos generar un entero aleatorio dentro de un rango. Por ejemplo, si desea generar un número entero aleatorio entre 0 y 9, puede usar estas funciones.

Objetivos de esta lección. En esta lección, aprenderás a::

  • Generar un entero aleatorio dentro de un rango utilizandorandrange() yrandint()
  • Generar el número entero aleatorio con la longitud específica solamente
  • Generar un número entero aleatorio múltiplo de n
  • Crear una lista de enteros aleatorios
  • Generar un número entero aleatorio seguro
  • Cree una matriz multidimensional aleatoria de enteros aleatorios

Lectura adicional

  • Resuelva el Ejercicio de Generación de Datos Aleatorios de Python y el Cuestionario de Generación de Datos Aleatorios
  • También, leer Trabajar con datos aleatorios en Python (Guía completa)

Cómo usar aleatoriamente.randint()

Sintaxis:

random.randint(start, stop)

Esta función devuelve un entero aleatorio dentro de un rango. Esta función toma dos parámetros. Ambos son obligatorios. Por ejemplo, random.randint(0, 100) devolverá cualquier número aleatorio entre 0 y 100.

El randint(start, stop) incluye números de inicio y parada mientras genera enteros aleatorios. Generará un número aleatorio del rango inclusivo.

aleatorio.randint() ejemplos de generación aleatoria de números enteros

Resultado:

Random integer from 0 to 9Random integer: 5Random integer from 10 to 100Random integer: 89

Nota: no puede utilizar float número de randint(). Generará un ValueError: non-integer arg 1 si utiliza valores distintos de un entero.Consulte esta guía para generar un número flotante aleatorio dentro de un rango.

Cómo usar aleatoriamente.randrange ()

Veamos primero la sintaxis

random.randrange(start, stop)

Esta función devuelve un entero seleccionado aleatoriamente de range(start, stop, step). Esta función toma tres parámetros. De tres parámetros, dos son opcionales. es decir, start y step son los parámetros opcionales.

  • El argumento start es el número inicial en un rango aleatorio. es decir, límite inferior. El valor predeterminado de start es 0 si no se especifica.
  • El argumentostop es el último número de un rango aleatorio. el argumento stop es el límite superior.
  • El step es una diferencia entre cada número de la secuencia. El paso es parámetros opcionales. El valor predeterminado de step es 1 si no se especifica.

aleatorio.randrange () Ejemplos de generación de enteros aleatorios dentro de un rango

Aquí en el siguiente ejemplo, estamos tratando de imprimir un int aleatorio en un rango dado. Este ejemplo muestra todas las variantes de la función random.randrange().

Salida:

Generate random number within a given range in Python Random integer: 7Random integer: 22Random integer: 180

Nota: No se puede utilizar el valor flotante randrange(). Generará un ValueError: non-integer arg 1 for randrange() si utilizó valores distintos de un entero.

Generar el número entero aleatorio de una longitud específica

¿Qué pasa si desea generar un número aleatorio de longitud n? Por ejemplo, desea generar un número aleatorio de longitud 4. Veamos el ejemplo para generar el número aleatorio de longitud 4 usando random.randrange().

Salida:

First random number of length 4 is 1931Second random number of length 4 is 5715

Nota: Como puede ver, establecemos un inicio en 1000 y un fin en 10000 porque queremos generar el número aleatorio de longitud 4 (de 1000 a 9999).

Generar un número entero aleatorio múltiplo de n

En este ejemplo, generaremos un número aleatorio entre x e y, que es un múltiplo de 3 como 3, 6, 39, 66.

import randomnum = random.randrange(3, 300, 3)print("Random number multiple of 3 is ", num)

Salida:

Random number multiple of 3 is 264

Generar un entero negativo aleatorio

Veamos cómo generar un entero negativo aleatorio entre -60 y -6.

import randomsingedInt = random.randrange(-60, -6)print("Random negative integer between -60 to -6")print(singedInt)

Resultado:

Random negative integer between -60 to -6-49

Generar al azar entero positivo o negativo

import randomnum = random.randint(-10, 10)print(num)

generar Aleatoriamente 1 o -1

import randomnum = random.choice()print(num)

tenga en cuenta: usamos al azar.choice() para elegir un solo número de la lista de números. Aquí nuestra lista es

Generar una lista de números enteros aleatorios

En esta sección, veremos cómo generar varios números aleatorios. A veces necesitamos una lista de muestra para realizar pruebas o cualquier operación. En este caso, en lugar de crearlo manualmente, podemos crear una lista con enteros aleatorios usando randint() o randrange(). En este ejemplo, veremos cómo crear una lista de 10 enteros aleatorios.

Salida:

Printing list of 10 random numbers

En este ejemplo, existe la posibilidad de obtener un número duplicado en una lista

Crear una lista de números aleatorios sin duplicados

En el ejemplo anterior, existe la posibilidad de obtener un número aleatorio duplicado en una lista. Si desea asegurarse de que cada número de la lista sea único, hay una forma sencilla de generar una lista de números aleatorios únicos. Usando al azar.sample() podemos crear una lista de números aleatorios únicos.

  • El random.sample() devuelve una lista de muestra de números aleatorios seleccionados dentro de un rango de valores.
  • Nunca repite el elemento, por lo que podemos obtener una lista de números aleatorios sin duplicados

Veamos cómo generar 10 enteros aleatorios del rango 0 al 1000.

Resultado:


Si desea que cada número múltiplo de n, a continuación, utilizar la etiqueta step parámetro de range() función. Por ejemplo, desea una lista de 10 números aleatorios, pero cada entero en una lista debe ser múltiple de 5 y luego usar random.sample(range(0, 1000, 5), 10)

Leer más: aleatorio.sample()

Ordenar lista de números aleatorios

Si desea ordenar una lista de enteros aleatorios en orden ascendente, use la función sort() Salida:

Before sorting random integers listAfter sorting random integers list

Generar un entero aleatorio seguro

Sobre todo, los ejemplos no son criptográficamente seguros. El generador aleatorio criptográficamente seguro genera números aleatorios utilizando métodos de sincronización para garantizar que no haya dos procesos que puedan obtener el mismo número al mismo tiempo. Si está produciendo números aleatorios para una aplicación sensible a la seguridad, debe utilizar este enfoque.

Si está utilizando una versión de Python inferior a 3.6 y desea generar un entero aleatorio criptográficamente seguro, utilice las funciones random.SystemRandom().randint() o random.SystemRandom().randrange(). Consulte Cómo proteger datos aleatorios en Python.

Ejemplo:

Salida:

Secure random integer is 30Secure random integer is 162

Si está utilizando una versión de Python superior a 3.6, puede usar el módulo secrets para generar un entero aleatorio seguro.

import secretsprint("Random integer generated using secrets module is ")# from 0 to 10secureNum1 = secrets.randbelow(10)print(secureNum1)

Resultado:

Random integer generated using secrets module is 8
  • seguridad aleatoria de datos en python.
  • módulo secretos de Python

Crear una matriz multidimensional aleatoria de enteros aleatorios

El módulo NumPy de Python tiene un paquetenumpy.random para generar datos aleatorios. Para crear una matriz multidimensional aleatoria de enteros dentro de un rango dado, podemos usar los siguientes métodos NumPy:

Ahora, veamos el ejemplo.

Generar un array de 4 x 4 ints entre 10 y 50, exclusivo:

Salida:

4 x 4 array of ints between 10 and 20 inclusive ]

Generar un array de 5 x 3 ints entre 60 y 100, inclusive:

Salida:

3 x 5 array of ints between 10 and 20 exclusive ]

Puntos para recordar sobre randint() y randrange ()

  • Userandint() cuando desee generar un número aleatorio a partir de un rango inclusivo.
  • Use randrange() cuando desee generar un número aleatorio dentro de un rango especificando el valor de paso. Produce un número aleatorio de un rango exclusivo.

Debe tener en cuenta algunas restricciones de valor de una función randrange().

  • randint() rand randrange() sólo funciona con números enteros. No se pueden usar números flotantes.
  • Si usa números flotantes, subirá ValueError: non-integer arg 1 for randrange(). Consulte este artículo para generar un número flotante aleatorio entre dentro de un rango.
  • El paso no debe ser 0. Si se establece en 0, obtendrá un ValueError: zero step for randrange()

El inicio no debe ser mayor que el fin si está utilizando todos los números positivos. Si erróneamente se establece inicio mayor que deje usted conseguirá un ValueError: empty range for randrange()

import randomprint(random.randrange(100, 10, 2))

Resultado:

ValueError: empty range for randrange()

Pero, también puede establecer un valor mayor que parar si usted está usando negativo valor de paso.

import randomprint(random.randrange(100, 10, -2))

Resultado:

60

Entonces, ¿Qué Te Parece?

Quiero saber de ti. ¿Qué piensa usted de este artículo sobre randint() y randrange()? O tal vez me perdí uno de los usos de esas dos funciones. De cualquier manera, házmelo saber dejando un comentario a continuación.

Además, intente resolver el siguiente ejercicio y prueba para tener una mejor comprensión del trabajo con datos aleatorios en Python.

  • Ejercicio de generación de datos aleatorios de Python para practicar y dominar las técnicas de generación de datos aleatorios en Python.
  • Prueba de generación de datos aleatorios de Python para probar sus conceptos de generación de datos aleatorios.