Заметки по Python (21): Модуль случайных чисел

Python Технологии Nuggets призывают к публикации
Заметки по Python (21): Модуль случайных чисел

Мало знаний, большой вызов! Эта статья участвует в "Необходимые знания для программистов«Творческая деятельность.

Привет всем, яодна чаша в неделю, передняя часть, которая не хочет быть пьяной (завернутой). Если написанной статье посчастливилось получить вашу благосклонность, мне очень повезло~

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

генерировать случайные числа

random.random()метод

Возвращает случайно сгенерированное действительное число в диапазоне [0,1).

Грамматические структуры

import random  # 导入 random 模块

random.random()

random.randintметод

формат синтаксиса

random.randint(a,b)

Функция возвращает число N , где N — число между a и b (a

random.uniformметод

формат синтаксиса

random.uniform(a,b)

Функция возвращает случайное число с плавающей запятойN,когдаa <= bВремяa <= N <= b,когдаb < aВремяb <= N <= a.

random.randrangeметод

Грамматические структуры

random.randrange(start, stop[, step])
  • start: отсчет начинается с начала. По умолчанию начинается с 0. Например, randrange(5) эквивалентен range(0, 5);
  • стоп: Считает до конца стопа, но не включая стоп. Например: randrange(0, 5) равно [0, 1, 2, 3, 4], а не 5
  • step: размер шага, по умолчанию 1. Например: диапазон (0, 5) эквивалентен диапазону (0, 5, 1)

Возвращает число в случайном диапазоне

Эквивалентноchoice(range(start, stop, step))

образец кода

import random

random_value = random.random()
print(random_value)

randint_value = random.randint(1, 3)  # 返回随机整数
print(randint_value)

uniform_value = random.uniform(1, 3)  # 返回随机浮点数
print(uniform_value)

randrange_value = random.randrange(1, 100, 2)  # 1到100步长为2(这里只能取到100以为的奇数)
print(randrange_value)

Результаты, полученные от каждого запуска, разные.

функции для последовательностей

random.choice(seq)

Возвращает случайный элемент из непустой последовательности или выдает исключение, если последовательность пуста

образец кода

import random

value = random.choice(range(1, 100, 2))
# 这个等于random.randrange(1, 100, 2)
print(value)

Похоже, что этот метод будет использоваться при перетасовке.

Небольшой кейс генерации проверочного кода

import random
# 一个生成验证号的小案例
all_chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
captcha = ''
for _ in range(4):
    a = random.choice(all_chars)
    captcha += a  # 连接字符串
print(captcha)

random.shuffle()метод

shuffle(list)метод случайной сортировки всех элементов последовательности

образец кода

import random
list1 = ["beautiful" , "cute", "beautiful", 'prefect', "beautiful", "甜甜", 'lovely']
random.shuffle(list1)

print(list1)

random.sample()метод

random.sample(sequence, k), случайным образом получить фрагменты указанной длины из указанной последовательности. Функция образца не изменяет исходную последовательность. Длина среза не может превышать исходную длину, иначе будет выдано исключение

образец кода

import random
list1 = ["beautiful", "cute", "beautiful", 'prefect', "beautiful", "甜甜", 'lovely']
list2 = random.sample(list1, len(list1))
print("原列表:", list1)
print("新列表:", list2)

Этот метод может сортировать исходную последовательность, не разрушая исходную последовательность.