Модуль random

Тренажер по Python для пользователей с начальным уровнем подготовки.

Тренажер по Python

Модуль random — один из самых часто используемых в Python, когда нужно добавить элемент случайности в программу. Игры, тесты, симуляции, генерация паролей — везде пригодится умение работать со случайными числами. В этом тренажере ты разберёшься с основными функциями модуля: от простого получения случайного числа до перемешивания списков и выбора элементов. Задания построены от базовых к более хитрым, так что к концу ты будешь уверенно использовать псевдослучайные числа в своих проектах. Обрати внимание на различия между функциями — некоторые работают только с целыми числами, другие с дробными, а третьи вообще предназначены для работы со списками.

Список тем

Импорт модуля random

id: 40139_task1

Чтобы использовать функции для генерации случайных чисел, сначала нужно подключить соответствующий модуль. Допишите код так, чтобы импортировать модуль и вывести случайное целое число от 1 до 10 включительно.

Заполните пропуски
input1S random

number = random.input2S(1, 10)
print(number)
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Функции модуля random и их назначение

id: 40139_task2

Модуль random содержит множество функций для разных задач. Сопоставьте названия функций с их описанием — это поможет понять, какую функцию выбрать в конкретной ситуации.

Сопоставьте строки в правой части с соответствующими строками в левой по порядковому номеру
Возвращает случайное целое число в диапазоне [a, b]
Возвращает случайное дробное число в диапазоне [a, b]
Выбирает случайный элемент из последовательности
Перемешивает список на месте
Возвращает дробное число от 0.0 до 1.0
random.choice()
random.randint()
random.random()
random.shuffle()
random.uniform()
Сообщения
Проверить
Показать подсказку

Границы функции randint

id: 40139_task3

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

Выберите правильный вариант ответа
import random

# Какие значения может вернуть эта функция?
result = random.randint(5, 5)
print(result)
Сообщения
Проверить
Показать подсказку

Исправьте ошибку в использовании shuffle

id: 40139_task4

Программист хотел перемешать список и вывести результат, но код работает не так, как ожидалось. Найдите и исправьте ошибку.

Найдите ошибку и исправьте
import random
cards = ['A', 'K', 'Q', 'J']
result = random.shuffle(cards)
print(result)
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Результат работы random.choice

id: 40139_task5

Функция choice выбирает случайный элемент из последовательности. Но что произойдёт, если передать ей строку? Введите один из возможных результатов выполнения кода (любой символ из строки).

Что должно получиться?
import random

text = "ABC"
print(random.choice(text))
Сообщения
Проверить
Показать подсказку

Классификация функций по типу возвращаемого значения

id: 40139_task6

Функции модуля random возвращают значения разных типов. Распределите функции по категориям в зависимости от того, что они возвращают.

Перетяните элементы в соответствующие блоки
Целое число (int)
Дробное число (float)
Элемент(ы) из последовательности
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)
Сообщения
Проверить
Показать подсказку

Генератор случайного пароля

id: 40139_task7

Соберите код генератора простого пароля из 4 случайных букв. Используйте токены из банка, чтобы заполнить пропуски. Пароль должен формироваться из строки доступных символов.

Нужно правильно расставить в пропуски предложенные варианты
import random

chars = "ABCDEFGH"
password = [random.input1S(chars) for _ in input2S(4)]
print(input3S.join(password))
choice
range
""
randint
len
","
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Разница между randint и randrange

id: 40139_task8

Функции randint и randrange похожи, но есть важное отличие в том, как они обрабатывают верхнюю границу. Что выведет код?

Выберите правильный вариант ответа
import random

# Установим seed для воспроизводимости
random.seed(42)

# Какие числа МОЖЕТ вернуть randrange(1, 3)?
# (выберите множество возможных значений)
print("Возможные значения randrange(1, 3):")
Сообщения
Проверить
Показать подсказку

Бросок игрального кубика

id: 40139_task9

Соберите программу, которая имитирует бросок стандартного шестигранного кубика (значения от 1 до 6) и выводит результат с поясняющим текстом. Одна строка лишняя.

Перетяните в правильном порядке строки из одного блока в другой
import random
dice = random.randint(1, 6)
print(f"Выпало: {dice}")
dice = random.randint(0, 6)
print(dice)
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Воспроизводимая случайность с seed

id: 40139_task10

Иногда нужно, чтобы "случайные" числа были одинаковыми при каждом запуске — например, для тестирования. Для этого используется функция seed. Заполните пропуски, чтобы получать одинаковую последовательность чисел.

Заполните пропуски
import random

# Устанавливаем начальное значение генератора
random.input1S(100)

# Теперь эти числа будут одинаковыми при каждом запуске
print(random.randint(1, 10))
print(random.randint(1, 10))
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Ошибка при выборке sample

id: 40139_task11

Функция sample() выбирает несколько уникальных элементов из последовательности. В этом коде есть логическая ошибка — найдите и исправьте её.

Найдите ошибку и исправьте
import random
colors = ['red', 'green', 'blue']
selected = random.sample(colors, 5)
print(selected)
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Лотерея: выбор уникальных номеров

id: 40139_task12

Расставьте строки кода в правильном порядке, чтобы программа выбрала 3 уникальных случайных числа от 1 до 10 для лотереи и вывела их отсортированными.

Расставьте строки в правильном порядке
import random
numbers = list(range(1, 11))
winners = random.sample(numbers, 3)
winners.sort()
print(f"Выигрышные номера: {winners}")
Сообщения
Проверить
Показать подсказку

Вычисление с random()

id: 40139_task13

Функция 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)
Сообщения
Проверить
Показать подсказку

Игра "Камень, ножницы, бумага"

id: 40139_task14

Соберите код, который случайным образом выбирает ход компьютера в игре "Камень, ножницы, бумага". Программа должна: импортировать модуль, создать список вариантов, выбрать случайный и вывести его. Две строки лишние.

Перетяните в правильном порядке строки из одного блока в другой
import random
moves = ['камень', 'ножницы', 'бумага']
computer = random.choice(moves)
print(f"Компьютер выбрал: {computer}")
computer = random.shuffle(moves)
moves = random.sample(['камень', 'ножницы', 'бумага'], 1)
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Генерация случайного дробного числа в диапазоне

id: 40139_task15

Для получения случайного дробного числа в произвольном диапазоне используется специальная функция. Заполните пропуски, чтобы сгенерировать случайную температуру от 36.0 до 37.5 градусов.

Заполните пропуски
import random

# Случайная температура тела от 36.0 до 37.5
temperature = random.input1S(input2S, input3S)
print(f"Температура: {temperature:.1f}°C")
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку
НайтиКурс.Ру