Функции и модули

Когда один и тот же расчёт нужен в программе много раз, его выносят в функцию — собственную команду, которую можно вызывать по имени. Это главный приём инженера: разбить задачу на понятные блоки. Сегодня научимся писать свои функции и подключать готовые модули — 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: 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))
АВ функции нет return — она считает, но не возвращает результат, поэтому отдаёт None
БНужно убрать print снаружи
ВПараметров должно быть три

Подсказка: Функция посчитала 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 и подключать готовые модули. У тебя собран полный набор: вывод, ввод, условия, циклы, списки, строки, функции. На последнем занятии соберём всё вместе в симуляцию управления и разберём типовые задачи в формате ЕГЭ.

Назад  ·  ↑ В начало урока  ·  ⌂ В начало курса  ·  Вперёд →

Школа Виктора Комлева