Случайный модуль - довольно популярный модуль в 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 г.