Случайный модуль - довольно популярный модуль в Python. Чаще всего его используют для генерации случайных целых чисел. Однако у него есть и другие варианты использования. Некоторые из них мы обсудим ниже.

  • Случайный()
  • Семя
  • Генерация случайного целого числа
  • Генерация случайного кратного целого числа
  • Выбор случайного элемента из итерируемого
  • Перемешивание списка
  • Выберите n случайных элементов из итерируемого
  • Создать случайный GUID

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

Случайный()

Это используется для генерации случайного числа с плавающей запятой от 0 до 1.

import random
for _ in range(5):
  print(random.random())
'''
OUTPUT
0.49871134487223123
0.06941111334065919
0.02980186878132185
0.06790566062222614
0.6563380053516832
'''

Семя

Мы можем установить семя для случайного модуля. Хотя целочисленный элемент с плавающей запятой будет случайным. Во время каждого запуска это будет одно и то же случайное значение. Однако, если вы используете модуль random несколько раз в программе, он будет возвращать разные случайные значения для каждого вызова.

random.seed(12)

Генерация случайного целого числа

Это, вероятно, самый популярный вариант использования модуля random.

import random
for _ in range(5):
  print(random.randint(0,20))
'''
OUTPUT
8
13
4
5
20
'''

Первый аргумент - это начальный номер, а второй аргумент - конечный номер. Он включает в себя, то есть randint () может также вернуть начальный или конечный номер.

Генерация случайного кратного целого числа

Предположим, мы хотим сгенерировать случайное число, кратное 10. Есть два способа сделать это.

Способ 1

Мы используем функцию randint () и просто умножаем возвращаемое значение на 10

import random
for _ in range(5):
  print(random.randint(0,20)*10)
'''
OUTPUT
130
20
170
100
200
'''

Способ 2

Мы можем использовать randrange (). При необходимости мы можем изменить начальный и конечный номер. Она похожа на функцию randint (), но требует дополнительного параметра. Берется размер шага. Итак, если мы установим размер шага равным 10, он будет случайным образом выбирать из (0,10,20,30… ..)

import random
for _ in range(5):
  print(random.randrange(0,100,10))
'''
OUTPUT
130
20
170
100
200
'''

Выбор случайного элемента из итерируемого

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

import random
lst = ["hello" , "world" , "!!!" , "Python" , "Medium" , "Hashnod" , "Twitter"]
tpl = ("hello" , "world" , "!!!" , "Python" , "Medium" , "Hashnod" , "Twitter")
dictionary = {idx: val for idx,val in enumerate(lst)}
print(random.choice(lst))
print(random.choice(tpl))
print(random.choice(dictionary))
'''
OUTPUT
world
Hashnod
Medium
'''

Это работает следующим образом

  • First random генерирует случайное целое число от 0 до len (итерация)
  • Он использовал сгенерированное целое число в качестве индекса и возвращает iterabel [index]. В результате он работает со словарями, только если словарь имеет целое число в качестве ключа.

Перемешивание списка

Мы можем использовать функцию shuffle () для перемешивания списка. Функцию НЕЛЬЗЯ использовать с неизменяемым объектом, например кортежем. Это метод на месте, то есть он обновляет исходный список.

import random
lst = ["hello" , "world" , "!!!" , "Python" , "Medium"]
for _ in range(5):  
  random.shuffle(lst)
  print(lst)

'''
OUTPUT
['hello', 'Medium', 'world', 'Python', '!!!']
['world', 'hello', 'Medium', 'Python', '!!!']
['!!!', 'world', 'hello', 'Python', 'Medium']
['Python', 'Medium', '!!!', 'hello', 'world']
['!!!', 'hello', 'Medium', 'world', 'Python']
'''

Выберите n случайных элементов из итерируемого

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

import random
lst = ["hello" , "world" , "!!!" , "Python" , "Medium" , "Hashnod" , "Twitter"]
tpl = ("hello" , "world" , "!!!" , "Python" , "Medium" , "Hashnod" , "Twitter")
dictionary = {idx: val for idx,val in enumerate(lst)}
print(random.sample(lst,3))
print(random.sample(tpl,3))

'''
OUTPUT
['!!!', 'Twitter', 'Medium']
['Hashnod', 'Python', '!!!']
'''

Создать случайный GUID

Мы больше не будем использовать модуль random, вместо этого мы будем использовать модуль uuid

import uuid
print(str(uuid.uuid4()))
print(len(str(uuid.uuid4())))
'''
OUTPUT
6dc2ad9b-2707-45ba-b5e8-5e2eb8a1dfe9
36
'''

uuid4 () возвращает объект типа UUID, но мы можем использовать str () для его приведения к типу. По умолчанию это строка из 32 символов. Мы можем использовать строковые операции для изменения GUID.

import uuid
print(str(uuid.uuid4())[0:16])
print(len(str(uuid.uuid4())[0:16]))
'''
OUTPUT
4bde04c7-d749-40
16
'''

Приведенный выше код генерирует GUID из 16 символов.

Первоначально опубликовано на https://www.realpythonproject.com 12 апреля 2021 г.