randint rand how float python random integer

how - random.rand python



Generar enteros aleatorios entre 0 y 9 (17)

El módulo de secrets es nuevo en Python 3.6. Esto es mejor que el módulo random para criptografía o usos de seguridad.

Para imprimir aleatoriamente un número entero en el rango inclusivo 0-9:

from secrets import randbelow print(randbelow(10))

Para más detalles, ver PEP 506 .

¿Cómo puedo generar enteros aleatorios entre 0 y 9 (inclusive) en Python?

Por ejemplo, 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9


Elija el tamaño de la matriz (en este ejemplo, he elegido el tamaño para ser 20). Y luego, usa lo siguiente:

import numpy as np np.random.randint(10, size=(1, 20))

Puede esperar ver una salida del siguiente formulario ( se devolverán diferentes enteros aleatorios cada vez que lo ejecute; por lo tanto, puede esperar que los enteros en la matriz de salida difieran del ejemplo que se muestra a continuación ).

array([[1, 6, 1, 2, 8, 6, 3, 3, 2, 5, 6, 5, 0, 9, 5, 6, 4, 5, 9, 3]])


En el caso de números continuos, randint o randrange son probablemente las mejores opciones, pero si tiene varios valores distintos en una secuencia (es decir, una list ), también podría usar la choice :

>>> import random >>> values = list(range(10)) >>> random.choice(values) 5

choice también funciona para un artículo de una muestra no continua:

>>> values = [1, 2, 3, 5, 7, 10] >>> random.choice(values) 7

Si lo necesita "criptográficamente fuerte" también hay una secrets.choice en python 3.6 y más reciente:

>>> import secrets >>> values = list(range(10)) >>> secrets.choice(values) 2


Generando enteros aleatorios entre 0 y 9.

import numpy X = numpy.random.randint(0, 10, size=10) print(X)

Salida:

[4 8 0 4 9 6 9 9 0 7]


La mejor manera es usar la función de importación aleatoria.

import random print(random.sample(range(10), 10))

o sin ninguna importación de la biblioteca:

n={} for i in range(10): n[i]=i for p in range(10): print(n.popitem()[1])

aquí, los popitems eliminan y devuelven un valor arbitrario del diccionario n .


La pregunta original implica generar múltiples enteros aleatorios.

¿Cómo puedo generar enteros entre 0 y 9 (inclusive) en Python?

Sin embargo, muchas respuestas solo muestran cómo obtener un número aleatorio, por ejemplo, random.randint y random.randint .

Enteros aleatorios múltiples

Para mayor claridad, aún puede generar múltiples números aleatorios usando esas técnicas simplemente iterando N veces:

import random N = 5 [random.randint(0, 9) for _ in range(N)] # [9, 7, 0, 7, 3] [random.choice(range(10)) for _ in range(N)] # [8, 3, 6, 8, 7]

Muestra de enteros aleatorios

Algunas publicaciones demuestran cómo generar de forma nativa múltiples enteros aleatorios. 1 Aquí hay algunas opciones que abordan la pregunta implícita:

random.sample devuelve k selecciones únicas de una población (sin reemplazo): 2

random.sample(range(10), k=N) # [4, 5, 1, 2, 3]

En Python 3.6, random.choices devuelve k selecciones de una población (con reemplazo):

random.choices(range(10), k=N) # [3, 2, 0, 8, 2]

Vea también esta publicación relacionada usando numpy.random.choice .

1 A saber, @John Lawrence Aspden, @ST Mohammed, @SiddTheKid, @ user14372, @zangw, et al.

2 @prashanth menciona este módulo que muestra un entero.


Para el ejemplo que ha dado (números enteros desde 0 hasta 9), la solución más limpia es la siguiente:

from random import randrange randrange(10)


Prueba esto a través de random.shuffle

>>> import random >>> nums = [x for x in range(10)] >>> random.shuffle(nums) >>> nums [6, 3, 5, 4, 0, 1, 2, 9, 8, 7]


Prueba esto:

from random import randrange, uniform # randrange gives you an integral value irand = randrange(0, 10) # uniform gives you a floating-point value frand = uniform(0, 10)


Si quieres usar numpy entonces usa lo siguiente:

import numpy as np print(np.random.randint(0,10))



Tuve mejor suerte con esto para Python 3.6

str_Key = "" str_RandomKey = "" for int_I in range(128): str_Key = random.choice(''0123456789'') str_RandomKey = str_RandomKey + str_Key

Simplemente agregue caracteres como ''ABCD'' y ''abcd'' o ''^! ~ = -> <'' para modificar el grupo de caracteres del que se va a extraer, cambie el rango para alterar el número de caracteres generados.


Utilicé variable para controlar el rango.

from random import randint numberStartRange = 1 numberEndRange = 9 randomNumber = randint(numberStartRange, numberEndRange) print(randomNumber)

Utilicé la función de impresión para ver los resultados. Puedes comentar está fuera si no lo necesitas.


random.sample es otro que puede ser usado

import random n = 1 # specify the no. of numbers num = random.sample(range(10), n) num[0] # is the required number


>>> import random >>> random.randrange(10) 3 >>> random.randrange(10) 1

Para obtener una lista de diez muestras:

>>> [random.randrange(10) for x in range(10)] [9, 0, 4, 0, 5, 7, 4, 3, 6, 8]


from random import randint x = [randint(0, 9) for p in range(0, 10)]

Esto genera 10 enteros pseudoaleatorios en el rango de 0 a 9 inclusive.