Модуль random в языке программирования Python предоставляет различные функции для генерации случайных чисел и выборки случайных элементов из коллекций.

В этой статье мы рассмотрим основные функции, доступные в модуле random, и рассмотрим их использование.

Основные функции модуля random в Python и примеры их использования

random()

Функция random() генерирует случайное вещественное число в диапазоне от 0 до 1 (не включая 1).

import random

print(random.random()) # 0.9216878311426741
print(random.random()) # 0.3361233389748401

seed(a=None)

Функция seed(a=None) устанавливает начальное значение для генератора случайных чисел. Если a не задано или равно None, используется текущее время в качестве начального значения.

import random

random.seed(42)
print(random.random()) # 0.6394267984578837
random.seed(42)
print(random.random()) # 0.6394267984578837

randint(a, b)

Функция randint(a, b) генерирует случайное целое число в диапазоне от a до b включительно.

import random

print(random.randint(1, 10)) # 5
print(random.randint(1, 10)) # 10

uniform(a, b)

Функция uniform(a, b) генерирует случайное вещественное число в диапазоне от a до b.

import random

print(random.uniform(-1, 1)) # -0.6249504464635636
print(random.uniform(-1, 1)) # 0.8474337369372327

choice(seq)

Функция choice(seq) выбирает случайный элемент из последовательности seq.

import random

my_list = ['apple', 'banana', 'orange', 'pear']
print(random.choice(my_list)) # 'banana'
print(random.choice(my_list)) # 'pear'

choices(population, weights=None, *, cum_weights=None, k=1)

Функция choices(population, weights=None, *, cum_weights=None, k=1) возвращает список из k элементов, выбранных случайным образом из population. Параметр weights указывает вероятности выбора каждого элемента из population.

import random

my_list = ['apple', 'banana', 'orange', 'pear']
weights = [0.1, 0.2, 0.3, 0.4]

print(random.choices(my_list, weights=weights, k=2)) # ['pear', 'banana']
print(random.choices(my_list, weights=weights, k=2)) # ['pear', 'pear']

sample(population, k)

Функция sample(population, k) возвращает список из k элементов, выбранных случайным образом из population без повторений.

import random

my_list = ['apple', 'banana', 'orange', 'pear']
print(random.sample(my_list, 2)) # ['banana', 'pear']
print(random.sample(my_list, 2)) # ['pear', 'orange']

shuffle(x)

Функция shuffle(x) перемешивает порядок элементов в списке x в произвольном порядке.

import random

my_list = ['apple', 'banana', 'orange', 'pear']
random.shuffle(my_list)
print(my_list) # ['banana', 'pear', 'orange', 'apple']

randrange(start, stop=None, step=1)

Функция randrange(start, stop=None, step=1) генерирует случайное целое число в диапазоне от start до stop (не включая stop) с заданным шагом step.

import random

print(random.randrange(1, 10)) # 6
print(random.randrange(0, 20, 5)) # 10

getrandbits(k)

Функция getrandbits(k) генерирует случайное целое число с k битами.

import random

print(random.getrandbits(4)) # 13
print(random.getrandbits(8)) # 107

gauss(mu, sigma)

Функция gauss(mu, sigma) генерирует случайное число с нормальным распределением с заданным средним значением mu и стандартным отклонением sigma.

import random

print(random.gauss(0, 1)) # -0.10515650353713555
print(random.gauss(0, 1)) # 0.06677355737474415

betavariate(alpha, beta)

Функция betavariate(alpha, beta) генерирует случайное число с бета-распределением с параметрами alpha и beta.

import random

print(random.betavariate(0.5, 0.5)) # 0.7503029722218252
print(random.betavariate(0.5, 0.5)) # 0.2945644850796579

expovariate(lambd)

Функция expovariate(lambd) генерирует случайное число с экспоненциальным распределением с параметром lambd.

import random

print(random.expovariate(0.5)) # 0.6252329846332267
print(random.expovariate(0.5)) # 0.6640527636150444

gammavariate(alpha, beta)

Функция gammavariate(alpha, beta) генерирует случайное число с гамма-распределением с параметрами alpha и beta.

import random

print(random.gammavariate(1, 1)) # 0.1952897299842816
print(random.gammavariate(1, 1)) # 0.2877086760748182

lognormvariate(mu, sigma)

Функция lognormvariate(mu, sigma) генерирует случайное число с лог-нормальным распределением с параметрами mu и sigma.

import random

print(random.lognormvariate(0, 1)) # 0.3201430829736953

normalvariate(mu, sigma)

Функция normalvariate(mu, sigma) генерирует случайное число с нормальным распределением с заданным средним значением mu и стандартным отклонением sigma.

import random

print(random.normalvariate(0, 1)) # -0.07983370116647224
print(random.normalvariate(0, 1)) # -0.8190380629197525

paretovariate(alpha)

Функция paretovariate(alpha) генерирует случайное число с распределением Парето с параметром alpha.

import random

print(random.paretovariate(1)) # 4.526067702740851
print(random.paretovariate(1)) # 1.4009723552897616

triangular(low, high, mode)

Функция triangular(low, high, mode) генерирует случайное число с треугольным распределением с параметрами low, high и mode.

import random

print(random.triangular(0, 10, 5)) # 6.252323740217643
print(random.triangular(0, 10, 5)) # 5.012830402626069

uniform(a, b)

Функция uniform(a, b) генерирует случайное число с равномерным распределением в диапазоне от a до b.

import random

print(random.uniform(0, 1)) # 0.7786679050743538
print(random.uniform(0, 1)) # 0.775116174443559

Заключение

Модуль random является очень полезным инструментом в Python, который предоставляет множество функций для генерации случайных чисел и случайных последовательностей. Эти функции могут быть использованы во многих задачах, таких как моделирование, тестирование, шифрование и многих других. При использовании функций модуля random важно следить за их параметрами и правильно использовать сгенерированные значения для достижения требуемых результатов.