Генерации случайных чисел между 0 и 9

как я могу генерировать случайные целые числа от 0 до 9 (включительно) в Python?

то есть 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

16 ответов


попробуй:

from random import randint
print(randint(0, 9))

Подробнее: https://docs.python.org/3/library/random.html#random.randint


import random
print(random.randint(0,9))

random.randint(a, b)

возвращает случайное целое число N такое, что a

Docs:https://docs.python.org/3.1/library/random.html#random.randint


попробуйте это:

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)]

это генерирует 10 псевдослучайных целых чисел в диапазоне от 0 до 9 включительно.


на secrets модуль является новым в Python 3.6. Это лучше, чем random модуль для шифрования или безопасности.

для случайной печати целого числа в инклюзивном диапазоне 0-9:

from secrets import randbelow
print(randbelow(10))

Подробнее см. PEP 506.


попробуйте это через 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]

выберите размер массива (в этом примере я выбрал размер, равный 20). И затем используйте следующее:

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

вы можете ожидать увидеть вывод следующей формы (различные случайные целые числа будут возвращаться каждый раз, когда вы его запускаете; следовательно, вы можете ожидать, что целые числа в выходном массиве будут отличаться от приведенного ниже примера).

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

в случае непрерывных чисел randint или randrange - вероятно, лучший выбор, но если у вас есть несколько различных значений в последовательности (т. е. list) вы также можете использовать choice:

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

choice также работает для одного элемента из не-непрерывный пример:

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

Если вам это нужно "криптографически сильным" ,есть также secrets.choice в python 3.6 и новее:

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

Если вы хотите использовать numpy, используйте следующее:

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

исходный вопрос подразумевает создание несколько случайные целые числа.

как я могу генерировать числа от 0 до 9 (включительно) в Python?

многие ответы, однако, показывают только, как получить один случайных чисел, например,random.randint и random.choice.

Несколько Случайных Целых Чисел

для ясности, вы все еще можете сгенерировать несколько случайных чисел, используя эти методы просто повторяя N раза:

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]

выборка случайных целых чисел

некоторые сообщения демонстрируют, как изначально генерировать несколько случайные целые числа.1 вот несколько вариантов, которые касаются подразумеваемого вопроса:

random.sample возвращает k уникальные выборки из популяции (без замены):2

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

В Python 3.6, random.choices возвращает k выборки из популяции (с заменой):

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

см. также это связано в должности используя numpy.random.choice.

1а именно @Джон Лоуренс Aspden, @Т Мухаммед, @SiddTheKid, @user14372, @zangw, и соавт.

2@prashanth упоминает этот модуль, показывающий одно целое число.


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

получить список из десяти образцов:

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

random.sample другой, который можно использовать

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

лучший способ - использовать функцию импорта Random

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

или без библиотеки импорта:

n={} 
for i in range(10):
    n[i]=i

for p in range(10):
    print(n.popitem()[1])
на popitems удаляет и возвращает произвольное значение из словаря n.

генерация случайных целых чисел от 0 до 9.

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

выход:

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

я использовал переменную для контроля диапазона

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

я использовал функцию печати, чтобы увидеть результаты. Вы можете прокомментировать это, если вам это не нужно.


Мне повезло с этим для Python 3.6

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

просто добавьте символы, такие как "ABCD" и "abcd " или"^!~ = - >