Модуль random в Python
Python randomМодуль в основном используется для генерации случайных чисел.
randomМодуль реализует генераторы псевдослучайных чисел для различных распределений.
Чтобы использоватьrandom, функцию необходимо сначала импортировать:
import random
Просмотр содержимого модуля random:
Примеры
>>> import random
>>> dir(random)
['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 'SG_MAGICCONST', 'SystemRandom', 'TWOPI', '_Sequence', '_Set', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_accumulate', '_acos', '_bisect', '_ceil', '_cos', '_e', '_exp', '_floor', '_inst', '_log', '_os', '_pi', '_random', '_repeat', '_sha512', '_sin', '_sqrt', '_test', '_test_generator', '_urandom', '_warn', 'betavariate', 'choice', 'choices', 'expovariate', 'gammavariate', 'gauss', 'getrandbits', 'getstate', 'lognormvariate', 'normalvariate', 'paretovariate', 'randbytes', 'randint', 'random', 'randrange', 'sample', 'seed', 'setstate', 'shuffle', 'triangular', 'uniform', 'vonmisesvariate', 'weibullvariate']
>>> dir(random)
['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 'SG_MAGICCONST', 'SystemRandom', 'TWOPI', '_Sequence', '_Set', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_accumulate', '_acos', '_bisect', '_ceil', '_cos', '_e', '_exp', '_floor', '_inst', '_log', '_os', '_pi', '_random', '_repeat', '_sha512', '_sin', '_sqrt', '_test', '_test_generator', '_urandom', '_warn', 'betavariate', 'choice', 'choices', 'expovariate', 'gammavariate', 'gauss', 'getrandbits', 'getstate', 'lognormvariate', 'normalvariate', 'paretovariate', 'randbytes', 'randint', 'random', 'randrange', 'sample', 'seed', 'setstate', 'shuffle', 'triangular', 'uniform', 'vonmisesvariate', 'weibullvariate']
Далее мы используемrandom()метод возвращает случайное число, которое находится в пределахполуоткрытого интервала [0,1)диапазон, включая 0, но не включая 1.
Примеры
# Импорт пакета random
import random
# Сгенерировать случайное число
print(random.random())
import random
# Сгенерировать случайное число
print(random.random())
Вывод приведенного выше примера:
0.4784904215869241
seed()Метод изменяет начальное значение генератора случайных чисел, и вы можете вызвать эту функцию перед вызовом других функций модуля random.
Примеры
#!/usr/bin/python3
import random
random.seed()
print (Сгенерируйте случайное число, используя начальное значение по умолчанию:, random.random())
print (Сгенерируйте случайное число, используя начальное значение по умолчанию:, random.random())
random.seed(10)
print (Сгенерируйте случайное число, используя целое число 10 в качестве начального значения:, random.random())
random.seed(10)
print (Сгенерируйте случайное число, используя целое число 10 в качестве начального значения:, random.random())
random.seed("hello",2)
print (Сгенерируйте случайное число, используя строковое начальное значение:, random.random())
import random
random.seed()
print (Сгенерируйте случайное число, используя начальное значение по умолчанию:, random.random())
print (Сгенерируйте случайное число, используя начальное значение по умолчанию:, random.random())
random.seed(10)
print (Сгенерируйте случайное число, используя целое число 10 в качестве начального значения:, random.random())
random.seed(10)
print (Сгенерируйте случайное число, используя целое число 10 в качестве начального значения:, random.random())
random.seed("hello",2)
print (Сгенерируйте случайное число, используя строковое начальное значение:, random.random())
Вывод после запуска приведённого выше примера:
使用默认种子生成随机数: 0.7908102856355441 使用默认种子生成随机数: 0.81038961519195 使用整数 10 种子生成随机数: 0.5714025946899135 使用整数 10 种子生成随机数: 0.5714025946899135 使用字符串种子生成随机数: 0.3537754404730722
Методы модуля random
Методы модуля random перечислены ниже:
| Метод | Описание |
|---|---|
| seed() | Инициализировать генератор случайных чисел |
| getstate() | Возвращает объект, фиксирующий текущее внутреннее состояние генератора. |
| setstate() | state должен быть получен из предыдущего вызова getstate(), а setstate() восстанавливает внутреннее состояние генератора до того, каким оно было при вызове getstate(). |
| getrandbits(k) | Возвращает неотрицательное целое число Python с k случайными битами. Этот метод предоставляется генератором MersenneTwister, и некоторые другие генераторы также могут предоставлять его как необязательную часть API. Когда это возможно, getrandbits() позволяет randrange() обрабатывать произвольно большие диапазоны. |
| randrange() | Возвращает случайно выбранный элемент из range(start, stop, step). |
| randint(a, b) | Возвращает случайное целое число N такое, что a <= N <= b. |
| choice(seq) | Возвращает случайный элемент из непустой последовательности seq. Если seq пуста, возбуждает IndexError. |
| choices(population, weights=None, *, cum_weights=None, k=1) | Возвращает список из k элементов, выбранных с возвращением из population. Если population пуст, возбуждает IndexError. |
| shuffle(x[, random]) | Перемешать последовательность x случайным образом. |
| sample(population, k, *, counts=None) | Вернуть список длины k уникальных элементов, выбранных из последовательности или множества population. Используется для случайной выборки без повторений. |
| random() | Вернуть следующее случайное число с плавающей запятой в диапазоне [0.0, 1.0). |
| uniform() | Вернуть случайное число с плавающей запятой N такое, что a <= N <= b, когда a <= b, и b <= N <= a, когда b < a. |
| triangular(low, high, mode) | Вернуть случайное число с плавающей запятой N такое, что low <= N <= high, с заданным mode между этими границами. Границы low и high по умолчанию равны нулю и единице. Параметр mode по умолчанию равен середине между границами, что даёт симметричное распределение. |
| betavariate(alpha, beta) | Бета-распределение. Условия для параметров: alpha > 0 и beta > 0. Возвращаемое значение находится в диапазоне от 0 до 1. |
| expovariate(lambd) | Экспоненциальное распределение. lambd — это 1.0, делённое на желаемое среднее, и он не должен быть равен нулю. |
| gammavariate() | Гамма-распределение (не гамма-функция). Условия для параметров: alpha > 0 и beta > 0. |
| gauss(mu, sigma) | Нормальное распределение, также известное как распределение Гаусса. mu — это среднее, а sigma — стандартное отклонение. Эта функция немного быстрее, чем функция normalvariate(), определённая ниже. |
| lognormvariate(mu, sigma) | Логнормальное распределение. Если взять натуральный логарифм этого распределения, получится нормальное распределение со средним mu и стандартным отклонением sigma. mu может быть любым значением, а sigma должна быть больше нуля. |
| normalvariate(mu, sigma) | Нормальное распределение. mu — это среднее, а sigma — стандартное отклонение. |
| vonmisesvariate(mu, kappa) | Распределение фон Мизеса. mu — это средний угол, выраженный в радианах, между 0 и 2*pi, а kappa — параметр концентрации, который должен быть больше или равен нулю. Если kappa равен нулю, это распределение сводится к равномерному случайному углу в диапазоне от 0 до 2*pi. |
| paretovariate(alpha) | Распределение Парето. alpha — это параметр формы. |
| weibullvariate(alpha, beta) | Распределение Вейбулла. alpha — параметр масштаба, а beta — параметр формы. |