Каковы случайные модульные функции 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()?
- randint() должен принимать 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. Подпишитесь на нашу бесплатную еженедельную рассылку здесь.