«random» — это простой математический модуль, но он предоставляет множество продвинутых методов, связанных с теориями вероятностей. Он может моделировать случайный выбор из набора элементов, случайным образом перемешивать список и даже генерировать набор случайных числовых или нечисловых элементов.

from random import *

Определить список для тестирования

myList = [1,5,8,9,23,9,7,8,91,2,5,9,94,8,5]

случайные методы:

random()        # returns a random number between 0 and 1
randint(1, 6)   # return a number randomly between 1 to 6

randrange(6)            # return random integer from 0 to 6 
randrange(0, 100, 2)    # return random integer from 0 to 100 but with taking steps of 2 (0, 2, 4, 6, …)

choice(myList)  # return an element randomly from the list 
choices(myList, k=10)       # choose 10 element randomly from the list with equal probability

sample(myList, k=10)        # choose 10 unique element randomly from the list
sample(["red", "blue"], counts=[4, 2], k=3)     
# duplicate the samples with the corresponding samples, 
# and choose 3 unique element randomly from this list: [“red”, “red”, “red”, “red”, “blue” , “blue”]

shuffle(myList) # shuffle (change positions) of the elements in the list

Сложные случайные методы

gauss(5, 20)        # generates a Gaussian distribution float number, 
# (5) is the mean (mu), (20) is the standard deviation (sigma)

# --- System Random ---

rnd = SystemRandom()       # create a system random object

rnd.getrandbits(2)         
# generate a random integer which its binary value consists of (2) digits: [0, 1, 2 ,3] 
# because their corresponding binary values are: 
# [00, 01, 10, 11] all of which consists of 2 binary digits

rnd.randbytes(3)           
# generates 3 random bytes, such:
# b'0i)'
# b'\x0f\xb7\xda'

Первоначально опубликовано на https://mustafahasanat.blogspot.com 30 марта 2022 г.