Как сгенерировать рандомное число в питоне
Перейти к содержимому

Как сгенерировать рандомное число в питоне

  • автор:

Генерация случайных целых чисел в Python

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

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

Использование функции randint()

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

Пример использования функции randint() для генерации случайного целого числа от 0 до 9:

import random random_number = random.randint(0, 9) print(random_number)

В этом коде сначала происходит импорт библиотеки random , затем с помощью функции randint() генерируется случайное число от 0 до 9 и записывается в переменную random_number . В конце число выводится на экран.

Использование функции randrange()

Еще одним способом генерации случайного целого числа является использование функции randrange() . Эта функция также принимает два аргумента: начало и конец диапазона, и возвращает случайное число в этом диапазоне.

Пример использования функции randrange() для генерации случайного целого числа от 0 до 9:

import random random_number = random.randrange(0, 10) print(random_number)

Важно отметить, что в функции randrange() верхняя граница диапазона не включается. То есть, в этом примере функция вернет случайное число от 0 до 9, но не включая 10.

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

Какая функция нужна для генерации случайного числа в Python?

Для генерации случайных чисел нужно импортировать модуль random, в котором есть несколько подходящих функций:

random() возвращает случайно число (class ‘float’) в диапазоне от 0.0 до 1.0 (верхняя граница не входит в диапазон).

from random import random random() # 0.3380967837329142 random() # 0.07200652051529788 

randint(start, stop) возвращает случайное число (class ‘int’) в диапазоне от start до stop (обе границы включены в диапазон).

from random import randint randint(1, 7) # 4 randint(1, 7) # 2 

randrange(start, stop, step) возвращает случайное число (class ‘int’) из последовательности от start до stop (верхняя граница не входит в диапазон) с шагом = step. Параметры start и step необязательные, по умолчанию start = 0, step = 1.

from random import randrange randrange(4) # 1 randrange(4) # 3 random.randrange(4, 10) # 6 random.randrange(4, 10) # 9 random.randrange(4, 10, 2) # 4 random.randrange(4, 10, 2) # 8 

Python 3: Генерация случайных чисел (модуль random)¶

Python порождает случайные числа на основе формулы, так что они не на самом деле случайные, а, как говорят, псевдослучайные [1]. Этот способ удобен для большинства приложений (кроме онлайновых казино) [2].

[2] Доусон М. Программируем на Python. — СПб.: Питер, 2014. — 416 с.: ил. — 3-е изд

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

import random 

random.random¶

random.random() — возвращает псевдослучайное число от 0.0 до 1.0

random.random() 0.07500815468466127 

random.seed¶

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

random.seed(20) random.random() 0.9056396761745207 random.random() 0.6862541570267026 random.seed(20) random.random() 0.9056396761745207 random.random() 0.7665092563626442 

random.uniform¶

random.uniform(, ) — возвращает псевдослучайное вещественное число в диапазоне от до :

random.uniform(0, 20) 15.330185127252884 random.uniform(0, 20) 18.092324756265473 

random.randint¶

random.randint(, ) — возвращает псевдослучайное целое число в диапазоне от до :

random.randint(1,27) 9 random.randint(1,27) 22 

random.choince¶

random.choince() — возвращает случайный элемент из любой последовательности (строки, списка, кортежа):

random.choice('Chewbacca') 'h' random.choice([1,2,'a','b']) 2 random.choice([1,2,'a','b']) 'a' 

random.randrange¶

random.randrange(, , ) — возвращает случайно выбранное число из последовательности.

random.shuffle¶

random.shuffle() — перемешивает последовательность (изменяется сама последовательность). Поэтому функция не работает для неизменяемых объектов.

List = [1,2,3,4,5,6,7,8,9] List [1, 2, 3, 4, 5, 6, 7, 8, 9] random.shuffle(List) List [6, 7, 1, 9, 5, 8, 3, 2, 4] 

Вероятностные распределения¶

random.triangular(low, high, mode) — случайное число с плавающей точкой, low ≤ N ≤ high . Mode — распределение.

random.betavariate(alpha, beta) — бета-распределение. alpha>0 , beta>0 . Возвращает от 0 до 1.

random.expovariate(lambd) — экспоненциальное распределение. lambd равен 1/среднее желаемое. Lambd должен быть отличным от нуля. Возвращаемые значения от 0 до плюс бесконечности, если lambd положительно, и от минус бесконечности до 0, если lambd отрицательный.

random.gammavariate(alpha, beta) — гамма-распределение. Условия на параметры alpha>0 и beta>0 .

random.gauss(значение, стандартное отклонение) — распределение Гаусса.

random.lognormvariate(mu, sigma) — логарифм нормального распределения. Если взять натуральный логарифм этого распределения, то вы получите нормальное распределение со средним mu и стандартным отклонением sigma . mu может иметь любое значение, и sigma должна быть больше нуля.

random.normalvariate(mu, sigma) — нормальное распределение. mu — среднее значение, sigma — стандартное отклонение.

random.vonmisesvariate(mu, kappa) — mu — средний угол, выраженный в радианах от 0 до 2π, и kappa — параметр концентрации, который должен быть больше или равен нулю. Если каппа равна нулю, это распределение сводится к случайному углу в диапазоне от 0 до 2π.

random.paretovariate(alpha) — распределение Парето.

random.weibullvariate(alpha, beta) — распределение Вейбулла.

Примеры¶

Генерация произвольного пароля¶

Хороший пароль должен быть произвольным и состоять минимум из 6 символов, в нём должны быть цифры, строчные и прописные буквы. Приготовить такой пароль можно по следующему рецепту:

import random # Щепотка цифр str1 = '123456789' # Щепотка строчных букв str2 = 'qwertyuiopasdfghjklzxcvbnm' # Щепотка прописных букв. Готовится преобразованием str2 в верхний регистр. str3 = str2.upper() print(str3) # Выведет: 'QWERTYUIOPASDFGHJKLZXCVBNM' # Соединяем все строки в одну str4 = str1+str2+str3 print(str4) # Выведет: '123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM' # Преобразуем получившуюся строку в список ls = list(str4) # Тщательно перемешиваем список random.shuffle(ls) # Извлекаем из списка 12 произвольных значений psw = ''.join([random.choice(ls) for x in range(12)]) # Пароль готов print(psw) # Выведет: '1t9G4YPsQ5L7'

Этот же скрипт можно записать всего в две строки:

import random print(''.join([random.choice(list('123456789qwertyuiopasdfghjklzxc vbnmQWERTYUIOPASDFGHJKLZXCVBNM')) for x in range(12)])) 

Данная команда является краткой записью цикла for, вместо неё можно было написать так:

import random psw = '' # предварительно создаем переменную psw for x in range(12): psw = psw + random.choice(list('123456789qwertyuiopasdfgh jklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM')) print(psw) # Выведет: Ci7nU6343YGZ 

Данный цикл повторяется 12 раз и на каждом круге добавляет к строке psw произвольно выбранный элемент из списка.

Ссылки¶

  • Официальная документация по модулю random (англ.)
  • Python 3 для начинающих: Модуль random
  • Модуль random — генерация случайных чисел
  • Безопасность случайных чисел в Python

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

Картинка к уроку

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

Генерация случайного числа с помощью модуля Random

Чтобы воспользоваться функциями модуля Random, его необходимо сначала подключить командой import.

import random

После этого можно воспользоваться необходимой вам функцией модуля Random.

Random.random

Функция возвращает случайное число в диапазоне 0 — 1.

import random print(random.random()) >>> 0.172676650596703 print(random.random()) >>> 0.41967198132083483 print(random.random()) >>> 0.9918523889221545

Random.uniform

Функция возвращает случайное вещественное число в указанном диапазоне.

import random print(random.uniform(0, 100)) >>>26.937418056935602 print(random.uniform(0, 100)) >>>50.37814119663015 print(random.uniform(0, 0.1)) >>>0.022964850436330765

В скобках указывается диапазон чисел random.unifrom(начало, конец).

Random.randint

Функция возвращает случайное целое число из указанного диапазона.

import random print(random.randint(0, 100)) >>> 3 print(random.randint(0, 100)) >>> 54 print(random.randint(0, 100000)) 31842

В скобках указывается диапазон чисел random.randint(начало, конец)

Random.randrange

Функция возвращает случайное число из указанного диапазона с определенным шагом. То есть, если мы зададим диапазон 0 — 10 и шаг 5, то функция вернет 0, 5 или 10.

import random print(random.randrange(0, 20, 5)) >>>0 print(random.randrange(0, 20, 5)) >>>15 print(random.randrange(0, 20, 2)) >>>12

В скобках указывается диапазон чисел и шаг, с которым выбирается случайное число random.randrage(начало, конец, шаг)

Random.choince

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

import random print(random.choices([0, 1, 12])) >>>[0] print(random.choices([0, 1, 12])) >>>[12] print(random.choices([0, 1, 12])) >>>[1]

Функция задается в формате random.choise(список).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *