Глава 13 · Автоматизация с помощью функций

Мини-проект — выполняем домашнее задание по математике с Python

Функции для генерации и проверки примеров на умножение — практика на все приёмы главы, с чистой логикой проверки, отделённой от ввода-вывода.

Используем
defreturn*args (опционально)randomциклы
Уровень
★★★ интеграционный
Результат
текстовый тренажёр

Соберём функции, аргументы и return в одном полезном инструменте: генераторе примеров для тренировки таблицы умножения. Разобьём задачу на функции по смыслу, а не оставим одним куском:

MAIN
sgenerirovat_primer
proverit_otvet
Граф вызовов: главная программа опирается на две маленькие, независимо проверяемые функции
domashnee_zadanie.py
import random

def sgenerirovat_primer():
    a = random.randint(2, 9)
    b = random.randint(2, 9)
    return a, b, a * b

def proverit_otvet(pravilnyj_otvet, otvet_polzovatelya):
    return pravilnyj_otvet == otvet_polzovatelya

a, b, pravilnyj_otvet = sgenerirovat_primer()
otvet = int(input(f"Сколько будет {a} x {b}? "))

if proverit_otvet(pravilnyj_otvet, otvet):
    print("Верно!")
else:
    print(f"Неверно — правильный ответ: {pravilnyj_otvet}")
Функция возвращает сразу три значения
return a, b, a * b на самом деле возвращает один кортеж (a, b, a * b) — мы распаковываем его в три переменные сразу, как в §13.10 и главе 11.
sgenerirovat_primer и proverit_otvet тестируются отдельно
proverit_otvet(56, 56) и proverit_otvet(56, 50) можно вызвать напрямую и проверить результат — без единого input(). Это ровно идея из §13.24: чистая логика проверки отделена от ввода/вывода.
★★ Самостоятельная задача
Счётчик правильных ответов

Оберните генерацию примера в цикл на 5 вопросов подряд и посчитайте, сколько из них решено верно.

Практика: генератор примеров по математике
Интерактивный ноутбук прямо в браузере — Python 3.14 через Pyodide, без установки
Открыть практику →