/
Вопросы и ответы
/
Python
/

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

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

4 года назад

Andrey Moshkov

Ответы

2

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

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

1
2
3
4
from random import random 

random() # 0.3380967837329142
random() # 0.07200652051529788

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

1
2
3
4
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.

1
2
3
4
5
6
7
8
9
10
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

4 года назад

Карина Абдуллаева

0

Для генерации случайного числа в Python используется модуль random. Вот несколько примеров использования:

random.randint(a, b) — возвращает случайное целое число N, где a <= N <= b.

1
2
3
import random
print(random.randint(1, 10))
# Вывод: случайное число от 1 до 10

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

1
2
3
4
python
import random
print(random.random())
# Вывод: случайное число от 0.0 до 1.0

2 года назад

Elena Gromova

0

Случайные числа даёт модуль random. Целое число от a до b включительно возвращает randint():

1
2
3
import random

print(random.randint(1, 6))  # например, 4 — бросок кубика

Основные функции

ФункцияЧто возвращаетПример
random.randint(a, b)целое от a до b, обе границы включеныrandint(1, 10)
random.randrange(a, b, step)целое от a до b, b не включеноrandrange(0, 100, 5)
random.random()дробное от 0 до 10.6394...
random.uniform(a, b)дробное от a до buniform(1.5, 2.5)
random.choice(seq)случайный элемент списка или строкиchoice(["да", "нет"])
random.sample(seq, k)k разных элементовsample(range(1, 50), 6)
random.shuffle(list)перемешивает список на месте—
1
2
3
4
5
6
colors = ["красный", "зелёный", "синий"]
print(random.choice(colors))

deck = [1, 2, 3, 4, 5]
random.shuffle(deck)
print(deck)  # например, [3, 1, 5, 2, 4]

Повторяемый результат

Для тестов и отладки задайте начальное значение генератора — тогда при каждом запуске будут одни и те же числа:

1
2
random.seed(42)
print(random.randint(1, 100))  # всегда одно и то же число

Для паролей и токенов

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

1
2
3
4
import secrets

print(f"{secrets.randbelow(1000000):06d}")  # шестизначный код, например 042917
print(secrets.token_hex(16))       # токен из 32 шестнадцатеричных символов

Много чисел сразу

1
2
numbers = [random.randint(1, 100) for _ in range(5)]
print(numbers)

Для больших массивов и анализа данных используют numpy.random.

Модули стандартной библиотеки разбирают в бесплатном курсе «Основы Python».

10 дней назад

Никита Вихров

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845