Каковы случайные модульные функции Python и как они используются?

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

Варианты использования каждой функции

  • Я хочу сгенерировать случайное целое число → randrange и randint
  • Я хочу сгенерировать случайное число с плавающей запятой → random
  • Я хочу выбрать один случайный элемент из списка → choice
  • Я хочу случайным образом выбрать несколько элементов из списка → sample
  • Я хочу случайным образом изменить порядок вещей в моем списке → shuffle

Импорт случайного модуля

Чтобы использовать модуль random в нашем коде, нам сначала нужно его импортировать. Есть 2 возможных способа сделать это:

import random

и

from random import *

Если вы import random, вам нужно добавить random. перед всеми функциями в random библиотеке:

a = random.randrange(1,11)
b = random.randint(1,10)

Если вы from random import *, вы, по сути, импортируете каждую функцию из библиотеки random. Нет необходимости добавлять random. перед функциями, когда вы их используете:

a = randrange(1, 11)
b = randint(1, 10)

Оба способа импорта работают, и вам решать, что вы выберете. В этой статье я буду использовать from random import *

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

randrange() с 1 аргументом

x = randrange(5) 

Здесь x будет случайным целым числом от 0 до 5, исключая 5. Возможные значения включали только 0, 1, 2, 3 и 4.

randrange() с 2 аргументами

x = randrange(1, 5)

Здесь 1 — это начало, а 5 — конец. Это означает, что x будет случайным целым числом от 1 до 5, исключая 5. Возможные значения включают 1, 2, 3 и 4. Помните, что 5 исключается.

randrange() с 3 аргументами

x = randrange(1, 10, 2)

Если мы добавим третий аргумент, то третьим аргументом будет шаг, очень похожий на начало, конец и шаг в функции range(). Возможные значения включают 1, 3, 5, 7 и 9. Обратите внимание, что возможные числа увеличиваются на 2 вместо 1 — это то, что делает аргумент шаг.

Генерация одного случайного целого числа — randint()

Это очень похоже на randrange(), но должно принимать 2 аргумента — start и stop:

x = randint(1, 6)

Здесь начало равно 1, а конец равно 6. x будет случайным целым числом от 1 до 6, включительно от 6. Возможно здесь значения 1, 2, 3, 4, 5 и 6. Вот и все.

Чем randint() отличается от randrange()?

  1. randint() должен принимать 2 и только 2 аргумента
  2. второй аргумент включен, в отличие от функции randrange()

Почему существует randint()?

Я не знаю.

randrange() vs randint() — что использовать?

Оба работают — это зависит от ваших предпочтений.

Генерация одного случайного числа с плавающей запятой — Random

Да, имя этой функции random(). Это может сбить с толку новичков, изучающих Python, но позвольте мне продемонстрировать, как вызвать эту функцию с обоими способами импорта модуля random():

import random
x = random.random()

И

from random import *
x = random()

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

Выбор одного случайного элемента из списка — выбор

Допустим, у нас есть существующий список:

fruits = ["apple", "orange", "pear"]

И мы хотим случайным образом выбрать 1 фрукт из этого списка.

x = choice(fruits)

Здесь функция choice() принимает последовательность (это может быть список, кортеж и т. д.) и возвращает 1 случайный элемент внутри последовательности. x здесь будет "apple", "orange" или "pear".

Выбор нескольких элементов случайным образом — пример

Если мы хотим выбрать несколько элементов вместо одного, нам нужно использовать функцию sample() вместо функции choice().

fruits = ["apple", "orange", "pear", "durian", "banana"]
x = sample(fruits, 2)

Функция sample() принимает последовательность (список, кортеж и т. д.) и число, представляющее, сколько элементов нам нужно. Здесь мы, по сути, сообщаем Python, что хотим выбрать 2 случайных элемента из списка fruits. x будет списком, содержащим 2 случайно выбранных фрукта.

Случайная перестановка элементов в списке — перемешивание

Допустим, у нас есть список, содержащий кучу фруктов:

fruits = ["apple", "orange", "pear"]

Если мы хотим случайным образом переставить элементы в списке, мы можем использовать функцию shuffle().

shuffle(fruits)

После вызова функции shuffle() элементы в fruits будут случайным образом переставлены:

# ["orange", "apple", "pear"] or some other order

Заключение

Надеюсь, это было полезно. Если это было полезно для вас и вы хотите поддержать меня как писателя, подумайте о том, чтобы подписаться на членство в Medium! Это 5 долларов в месяц, и вы получаете неограниченный доступ к историям на Medium. Если вы зарегистрируетесь по моей ссылке, я получу небольшую комиссию.

Вот ссылка для чтения неограниченного доступа к Medium

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



Больше контента на plainenglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку здесь.