Générer des nombres entiers aléatoires entre 0 et 9
Comment puis-je générer des nombres entiers aléatoires entre 0 et 9 (inclus) en Python?
c'est à dire 0
, 1
, 2
, 3
, 4
, 5
, 6
, 7
, 8
, 9
16 réponses
, Essayez:
from random import randint
print(randint(0, 9))
plus d'informations: https://docs.python.org/3/library/random.html#random.randint
import random
print(random.randint(0,9))
random.randint(a, b)
renvoie un entier aléatoire N tel que a <= N <= B.
Docs: https://docs.python.org/3.1/library/random.html#random.randint
essayez ceci:
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)
from random import randint
x = [randint(0, 9) for p in range(0, 10)]
cela génère 10 entiers de pseudorandom dans la gamme 0 à 9 inclusivement.
le module secrets
est nouveau en Python 3.6. C'est mieux que le module random
pour la cryptographie ou la sécurité.
pour imprimer au hasard un entier compris entre 0 et 9:
from secrets import randbelow
print(randbelow(10))
pour plus de détails, voir PEP 506 .
Essayez ceci par le biais 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]
choisissez la taille du tableau (dans cet exemple, j'ai choisi la taille à 20). Et puis, utilisez ce qui suit:
import numpy as np
np.random.randint(10, size=(1, 20))
vous pouvez vous attendre à voir une sortie de la forme suivante ( différents entiers aléatoires seront retournés chaque fois que vous l'exécutez; par conséquent, vous pouvez vous attendre à ce que les entiers dans le tableau de sortie diffèrent de l'exemple donné ci-dessous ).
array([[1, 6, 1, 2, 8, 6, 3, 3, 2, 5, 6, 5, 0, 9, 5, 6, 4, 5, 9, 3]])
dans le cas de numéros continus randint
ou randrange
sont probablement les meilleurs choix, mais si vous avez plusieurs valeurs distinctes dans une séquence (i.e. un list
), vous pouvez également utiliser choice
:
>>> import random
>>> values = list(range(10))
>>> random.choice(values)
5
choice
fonctionne également pour un article d'un échantillon non continu:
>>> values = [1, 2, 3, 5, 7, 10]
>>> random.choice(values)
7
si vous en avez besoin" cryptographiquement fort" il y a aussi un secrets.choice
en python 3.6 et plus récent:
>>> import secrets
>>> values = list(range(10))
>>> secrets.choice(values)
2
si vous voulez utiliser numpy, utilisez alors la rubrique suivante:
import numpy as np
print(np.random.randint(0,10))
la question initiale implique de générer plusieurs nombres entiers aléatoires.
Comment puis-je générer des entiers entre 0 et 9 (inclus) en Python?
de nombreuses réponses montrent seulement comment obtenir un nombre aléatoire, par exemple random.randint
et random.choice
.
Nombres Entiers Aléatoires Multiples
pour plus de clarté, vous pouvez encore générer plusieurs nombres aléatoires en utilisant ces techniques en itérant simplement N
fois:
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]
échantillon D'entiers aléatoires
certains messages montrent comment générer nativement multiple nombres entiers aléatoires. 1 voici quelques options qui répondent à la question implicite:
random.sample
rapports k
pièces uniques d'une population (sans remplacement): 2
random.sample(range(10), k=N)
# [4, 5, 1, 2, 3]
en Python 3.6, random.choices
retourne k
sélections d'une population (avec remplacement):
random.choices(range(10), k=N)
# [3, 2, 0, 8, 2]
Voir aussi ce poste à l'aide numpy.random.choice
.
1 à savoir @John Lawrence Aspden, @S T Mohammed, @SiddTheKid, @user14372, @zangw,et al.
2 @prashanth mentionne ce module montrant un entier.
>>> import random
>>> random.randrange(10)
3
>>> random.randrange(10)
1
Pour obtenir une liste de dix échantillons:
>>> [random.randrange(10) for x in range(10)]
[9, 0, 4, 0, 5, 7, 4, 3, 6, 8]
random.sample
est un autre qui peut être utilisé
import random
n = 1 # specify the no. of numbers
num = random.sample(range(10), n)
num[0] # is the required number
la meilleure façon est d'utiliser la fonction d'importation aléatoire
import random
print(random.sample(range(10), 10))
ou sans importation de bibliothèque:
n={}
for i in range(10):
n[i]=i
for p in range(10):
print(n.popitem()[1])
ici, le popitems supprime et retourne une valeur arbitraire à partir du dictionnaire n
.
générant des nombres entiers aléatoires entre 0 et 9.
import numpy
X = numpy.random.randint(0, 10, size=10)
print(X)
sortie:
[4 8 0 4 9 6 9 9 0 7]
j'ai utilisé la variable pour contrôler la portée
from random import randint
numberStartRange = 1
numberEndRange = 9
randomNumber = randint(numberStartRange, numberEndRange)
print(randomNumber)
j'ai utilisé la fonction d'impression de voir les résultats. Vous pouvez commenter est si vous n'avez pas besoin de cela.
j'ai eu plus de chance avec cela pour Python 3.6
str_Key = ""
str_RandomKey = ""
for int_I in range(128):
str_Key = random.choice('0123456789')
str_RandomKey = str_RandomKey + str_Key
il suffit D'ajouter des caractères comme 'ABCD' et 'abcd ' ou'^!~ = - ><'pour modifier le jeu de caractères, changez la plage pour modifier le nombre de caractères générés.