Глава 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, без установки