Генерации случайных чисел между 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 включительно.
попробуйте это через 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 " или"^!~ = - >