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

937
demandé sur dreftymac 2010-10-22 16:48:29

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

1509
répondu kovshenin 2017-06-11 21:38:58
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

291
répondu JMSamudio 2015-06-30 14:51:01

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)
92
répondu Andrew Hare 2010-10-22 12:55:18
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.

53
répondu user14372 2018-05-17 08:05:17

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 .

34
répondu Chris_Rands 2016-12-06 10:40:07

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]
19
répondu zangw 2015-12-10 17:57:41

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]])
13
répondu SiddTheKid 2017-02-02 06:35:10

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
11
répondu MSeifert 2017-09-24 10:33:54

si vous voulez utiliser numpy, utilisez alors la rubrique suivante:

import numpy as np
print(np.random.randint(0,10))
8
répondu sushmit 2017-06-03 01:39:14

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.

6
répondu pylang 2017-11-16 04:37:21
>>> 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]
5
répondu John Lawrence Aspden 2017-08-10 15:48:24

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
4
répondu prashanth 2017-05-14 16:46:54

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 .

3
répondu S T Mohammed 2017-06-03 01:41:12

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]
2
répondu Ashok Kumar Jayaraman 2018-07-06 14:11:44

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.

0
répondu Amir Md Amiruzzaman 2017-10-24 21:12:33

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.

-2
répondu M T Head 2017-07-20 23:43:43