Когда один и тот же расчёт нужен в программе много раз, его выносят в функцию — собственную команду, которую можно вызывать по имени. Это главный приём инженера: разбить задачу на понятные блоки. Сегодня научимся писать свои функции и подключать готовые модули — math и random. В конце соберём библиотеку инженерных функций.

После урока сможешь: Учим выносить расчёты в свои функции (def, параметры, return) и подключать готовые модули math и random. Это декомпозиция — сборка программы из простых блоков. В конце собираешь библиотеку инженерных функций.
Функция — своя команда
Функцию задают словом def, дальше имя, в скобках параметры (входные данные), двоеточие и тело с отступом. Команда return возвращает результат обратно туда, откуда функцию вызвали. Вызывают функцию по имени со скобками.
def ploschad(a, b):
rezultat = a * b
return rezultat
print(ploschad(4, 5))
print(ploschad(3, 10))
20
30
Функция — блок «вход -> обработка -> результат»:
ploschad(4, 5)
| |
a=4 b=5 (параметры — вход)
v
rezultat = a * b (обработка внутри)
|
return (отдаёт результат наружу)
v
20 (это и печатает print)
returnОТДАЁТ результат, но сам ничего не печатает. Чтобы увидеть его на экране, результат функции выводят черезprint(ploschad(4, 5)). Это разные вещи: return — отдать, print — показать.
Зачем функции: не повторять код
Написал функцию один раз — вызывай сколько угодно с разными данными. Если расчёт нужно поправить, меняешь его в одном месте, а не в десяти. Это и есть декомпозиция: сложная программа собирается из простых функций.
def srednee(spisok):
return sum(spisok) / len(spisok)
print(srednee([10, 20, 30]))
print(srednee([4, 8]))
20.0
6.0
Готовые модули: math и random
Многое уже написано до нас и лежит в модулях. Чтобы пользоваться, модуль подключают строкой import в начале программы. Модуль math даёт математику: math.sqrt(x) — корень, math.pi — число пи. Модуль random даёт случайные числа: random.randint(a, b).
import math
print(math.sqrt(9))
print(round(math.pi, 2))
print(round(math.sqrt(2), 3))
3.0
3.14
1.414
import mathпишут ОДИН раз в начале программы. Забудешь — Python не поймёт словоmathи выдаст ошибку. Обращение всегда через точку:math.sqrt,math.pi.
Миссия: библиотека инженерных функций
Скопируй программу в песочницу и запусти. Это маленькая библиотека: функция площади сечения, функция перевода оборотов в минуту в обороты в секунду и функция среднего. Добавь свою функцию — например, перевод градусов в радианы через math.pi.
# Библиотека инженерных функций
import math
def ploschad_kruga(r):
return round(math.pi * r * r, 2)
def rpm_v_rps(rpm):
return round(rpm / 60, 2)
def srednee(spisok):
return round(sum(spisok) / len(spisok), 2)
print("Площадь сечения:", ploschad_kruga(5))
print("Оборотов в секунду:", rpm_v_rps(1500))
print("Среднее измерение:", srednee([20, 35, 28, 41]))
Площадь сечения: 78.54
Оборотов в секунду: 25.0
Среднее измерение: 31.0
Контрольный вопрос. Что делает ключевое слово def?
Подсказка: def — от английского define, «определить». С него начинается описание функции.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Что делает команда return внутри функции?
Подсказка: return отдаёт результат наружу. Печать на экран — это отдельная команда print.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Что выведет программа из этого задания? Впиши число.
Исходный код для этого задания:
def ploschad(a, b): return a * b print(ploschad(4, 5))Подсказка: Функция возвращает a умножить на b. Подставь a=4, b=5.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Что выведет программа из этого задания? Впиши число.
Исходный код для этого задания:
def udvoit(x): return x * 2 print(udvoit(7))Подсказка: Функция возвращает x умножить на 2. Подставь x=7.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Что выведет программа из этого задания? Впиши число (с точкой, если дробное).
Исходный код для этого задания:
import math print(math.sqrt(9))Подсказка: math.sqrt — квадратный корень. Корень из 9. Результат дробного типа.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Что выведет программа из этого задания? Впиши число.
Исходный код для этого задания:
import math print(round(math.pi, 2))Подсказка: math.pi это 3.14159…, округляем до двух знаков.
Онлайн-проверка ответа появится позже
Задание. Напиши код сам. Напиши строку-заголовок функции с именем ploschad и двумя параметрами a и b (с двоеточием в конце).
Исходный код для этого задания:
# напиши ниже строку-заголовок функции ploschad с параметрами a и b return a * bПодсказка: Шаблон: def имя(параметр1, параметр2):. Не забудь двоеточие.
✅ Готово, если: программа запускается без ошибок и выводит то, что просят в задании.
Онлайн-проверка ответа появится позже
Задание. Напиши код сам. В теле функции результат уже посчитан в переменной rezultat. Напиши строку, которая вернёт его из функции.
Исходный код для этого задания:
def ploschad(a, b): rezultat = a * b # напиши ниже строку, которая вернёт rezultat из функцииПодсказка: Возврат результата — команда return. Шаблон: return rezultat.
✅ Готово, если: программа запускается без ошибок и выводит то, что просят в задании.
Онлайн-проверка ответа появится позже
Задание. Напиши код сам. Функция ploschad уже описана. Напиши команду print, которая выведет результат вызова ploschad с аргументами 3 и 4.
Исходный код для этого задания:
def ploschad(a, b): return a * b # напиши ниже команду print, выводящую результат ploschad для 3 и 4Подсказка: Вызов функции — имя со скобками и аргументами. Шаблон: print(ploschad(3, 4)).
✅ Готово, если: программа запускается без ошибок и выводит то, что просят в задании.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Функция считает площадь, но print(ploschad(4, 5)) печатает None вместо 20. В чём ошибка?
Исходный код для этого задания:
def ploschad(a, b): rezultat = a * b print(ploschad(4, 5))Подсказка: Функция посчитала rezultat, но что она делает с ним дальше? Без какой команды результат не выходит наружу?
Онлайн-проверка ответа появится позже
Контрольный вопрос. Что выведет программа из этого задания? Впиши число.
Исходный код для этого задания:
def kvadrat(x): return x * x print(kvadrat(3) + kvadrat(4))Подсказка: Посчитай каждый вызов отдельно: kvadrat(3) и kvadrat(4), потом сложи.
Онлайн-проверка ответа появится позже
Задание. Напиши код сам. Чтобы пользоваться квадратным корнем math.sqrt, нужно подключить модуль. Напиши строку, которая подключает модуль math.
Исходный код для этого задания:
# напиши ниже строку, которая подключает модуль math print(math.sqrt(16))Подсказка: Подключение модуля — слово import и имя модуля. Шаблон: import math.
✅ Готово, если: программа запускается без ошибок и выводит то, что просят в задании.
Онлайн-проверка ответа появится позже
Задание. Проектное задание. Напиши программу целиком (около 9-10 строк). Опиши функцию srednee(spisok), которая возвращает среднее значение списка, округлённое до 2 знаков. Опиши функцию maksimum(spisok), которая возвращает максимум. Затем заведи список izmereniya = [20, 35, 28, 41] и выведи двумя строками результат каждой функции для этого списка.
Исходный код для этого задания:
# def srednee(spisok): return round(sum(spisok)/len(spisok), 2) # def maksimum(spisok): return max(spisok) # izmereniya = [20, 35, 28, 41] # print среднего и print максимума через вызовы функцийПодсказка: Две функции с return, потом список, потом два print с вызовами: print(srednee(izmereniya)) и print(maksimum(izmereniya)).
✅ Готово, если: программа запускается без ошибок и выводит то, что просят в задании.
Онлайн-проверка ответа появится позже
Что дальше
Теперь ты умеешь оформлять расчёты функциями, возвращать результат через return и подключать готовые модули. У тебя собран полный набор: вывод, ввод, условия, циклы, списки, строки, функции. На последнем занятии соберём всё вместе в симуляцию управления и разберём типовые задачи в формате ЕГЭ.
Итог: Теперь ты умеешь оформлять расчёты функциями, возвращать результат через
returnи подключать готовые модули. У тебя собран полный набор: вывод, ввод, условия, циклы, списки, строки, функции. На последнем занятии соберём всё вместе в симуляцию управления и разберём типовые задачи в формате ЕГЭ.
