Модуль random — один из самых часто используемых в Python, когда нужно добавить элемент случайности в программу. Игры, тесты, симуляции, генерация паролей — везде пригодится умение работать со случайными числами. В этом тренажере ты разберёшься с основными функциями модуля: от простого получения случайного числа до перемешивания списков и выбора элементов. Задания построены от базовых к более хитрым, так что к концу ты будешь уверенно использовать псевдослучайные числа в своих проектах. Обрати внимание на различия между функциями — некоторые работают только с целыми числами, другие с дробными, а третьи вообще предназначены для работы со списками.
- Модуль 1: Основы синтаксиса Python
- Модуль 2: Переменные и типы данных
- Модуль 3: Операторы
- Арифметические операторы (+, -, *, /).
- Целочисленное деление и остаток (// и %).
- Возведение в степень (**).
- Операторы сравнения.
- Логические операторы (and, or, not).
- Операторы присваивания (=, +=, -=).
- Операторы принадлежности (in, not in).
- Операторы идентичности (is, is not).
- Битовые операторы.
- Тернарный оператор.
- Модуль 4: Ввод и вывод данных
- Модуль 5: Условные конструкции
- Модуль 6: Циклы
- Модуль 7: Строки
- Модуль 8: Списки
- Модуль 9: Кортежи
- Модуль 10: Словари
- Модуль 11: Множества
- Модуль 12: Функции
- Модуль 13: Встроенные функции
- Модуль 14: Работа с файлами
- Модуль 15: Обработка исключений
- Модуль 16: Модули и пакеты
- Модуль 17: ООП - Основы
- Модуль 18: ООП - Продвинутый уровень
- Модуль 19: Декораторы
- Модуль 20: Генераторы и итераторы
- Модуль 21: Регулярные выражения
- Модуль 22: Дата и время
- Модуль 23: Математические операции
- Модуль random.
- Генерация случайных чисел.
- Модуль 24: Работа с сетью
- Модуль 25: Асинхронное программирование
- Модуль 26: Многопоточность
- Модуль 27: Тестирование
- Модуль 28: Базы данных
- Модуль 29: Алгоритмы и структуры данных
- Модуль 30: Продвинутые возможности
Импорт модуля random
Чтобы использовать функции для генерации случайных чисел, сначала нужно подключить соответствующий модуль. Допишите код так, чтобы импортировать модуль и вывести случайное целое число от 1 до 10 включительно.
input1S random
number = random.input2S(1, 10)
print(number)Функции модуля random и их назначение
Модуль random содержит множество функций для разных задач. Сопоставьте названия функций с их описанием — это поможет понять, какую функцию выбрать в конкретной ситуации.
random.choice()random.randint()random.random()random.shuffle()random.uniform()Границы функции randint
Функция randint имеет важную особенность относительно границ диапазона. Проанализируйте код и определите, какие значения может вернуть вызов функции.
import random
# Какие значения может вернуть эта функция?
result = random.randint(5, 5)
print(result)Исправьте ошибку в использовании shuffle
Программист хотел перемешать список и вывести результат, но код работает не так, как ожидалось. Найдите и исправьте ошибку.
import randomcards = ['A', 'K', 'Q', 'J']result = random.shuffle(cards)print(result)Результат работы random.choice
Функция choice выбирает случайный элемент из последовательности. Но что произойдёт, если передать ей строку? Введите один из возможных результатов выполнения кода (любой символ из строки).
import random
text = "ABC"
print(random.choice(text))Классификация функций по типу возвращаемого значения
Функции модуля random возвращают значения разных типов. Распределите функции по категориям в зависимости от того, что они возвращают.
random.randint(1, 100)random.random()random.choice([1, 2, 3])random.uniform(0.0, 1.0)random.randrange(0, 10, 2)random.sample([1,2,3], 2)Генератор случайного пароля
Соберите код генератора простого пароля из 4 случайных букв. Используйте токены из банка, чтобы заполнить пропуски. Пароль должен формироваться из строки доступных символов.
import random
chars = "ABCDEFGH"
password = [random.input1S(chars) for _ in input2S(4)]
print(input3S.join(password))Разница между randint и randrange
Функции randint и randrange похожи, но есть важное отличие в том, как они обрабатывают верхнюю границу. Что выведет код?
import random
# Установим seed для воспроизводимости
random.seed(42)
# Какие числа МОЖЕТ вернуть randrange(1, 3)?
# (выберите множество возможных значений)
print("Возможные значения randrange(1, 3):")Бросок игрального кубика
Соберите программу, которая имитирует бросок стандартного шестигранного кубика (значения от 1 до 6) и выводит результат с поясняющим текстом. Одна строка лишняя.
import randomdice = random.randint(1, 6)print(f"Выпало: {dice}")dice = random.randint(0, 6)print(dice)Воспроизводимая случайность с seed
Иногда нужно, чтобы "случайные" числа были одинаковыми при каждом запуске — например, для тестирования. Для этого используется функция seed. Заполните пропуски, чтобы получать одинаковую последовательность чисел.
import random
# Устанавливаем начальное значение генератора
random.input1S(100)
# Теперь эти числа будут одинаковыми при каждом запуске
print(random.randint(1, 10))
print(random.randint(1, 10))Ошибка при выборке sample
Функция sample() выбирает несколько уникальных элементов из последовательности. В этом коде есть логическая ошибка — найдите и исправьте её.
import randomcolors = ['red', 'green', 'blue']selected = random.sample(colors, 5)print(selected)Лотерея: выбор уникальных номеров
Расставьте строки кода в правильном порядке, чтобы программа выбрала 3 уникальных случайных числа от 1 до 10 для лотереи и вывела их отсортированными.
import randomnumbers = list(range(1, 11))winners = random.sample(numbers, 3)winners.sort()print(f"Выигрышные номера: {winners}")Вычисление с random()
Функция random() возвращает дробное число от 0.0 до 1.0. Как можно получить случайное число в диапазоне от 0 до 100? Введите результат выражения, если random() вернул 0.5.
import random
# Допустим, random() вернул ровно 0.5
# Какое значение будет в переменной result?
# Имитируем: r = 0.5
r = 0.5
result = r * 100
print(result)Игра "Камень, ножницы, бумага"
Соберите код, который случайным образом выбирает ход компьютера в игре "Камень, ножницы, бумага". Программа должна: импортировать модуль, создать список вариантов, выбрать случайный и вывести его. Две строки лишние.
import randommoves = ['камень', 'ножницы', 'бумага']computer = random.choice(moves)print(f"Компьютер выбрал: {computer}")computer = random.shuffle(moves)moves = random.sample(['камень', 'ножницы', 'бумага'], 1)Генерация случайного дробного числа в диапазоне
Для получения случайного дробного числа в произвольном диапазоне используется специальная функция. Заполните пропуски, чтобы сгенерировать случайную температуру от 36.0 до 37.5 градусов.
import random
# Случайная температура тела от 36.0 до 37.5
temperature = random.input1S(input2S, input3S)
print(f"Температура: {temperature:.1f}°C")