Подпрограммы: процедуры и функции
💻 Информатика · 10 класс
Что такое подпрограмма
Подпрограмма — это именованный фрагмент кода, который можно вызывать из разных мест программы. Подпрограммы делят большую задачу на части, убирают повторение кода и делают программу понятнее. Различают функции (возвращают результат) и процедуры (выполняют действие без возврата значения).
Идея проста: если одно и то же вычисление встречается несколько раз, его оформляют один раз как подпрограмму и затем вызывают по имени. Это принцип модульности.
Объявление функции
В Python функцию задают словом def, указывая имя и параметры. Результат возвращает оператор return:
def kvadrat(x):
return x * x
Вызов: y = kvadrat(5) присвоит y значение 25. В скобках при вызове передают аргументы, которые подставляются вместо параметров.
Параметры и возврат
| Понятие | Смысл |
|---|---|
| Параметр | имя в объявлении подпрограммы |
| Аргумент | значение, переданное при вызове |
return | возвращает результат и завершает функцию |
| Локальная переменная | существует только внутри подпрограммы |
Разбор примера
Функция проверки простого числа возвращает «истину» или «ложь»:
def prostoe(n):
if n < 2:
return False
for d in range(2, n):
if n % d == 0:
return False
return True
Как только найден делитель, функция сразу завершается через return False. Если делителей не нашлось, возвращается True. Такую функцию удобно вызывать в цикле, чтобы вывести все простые числа.
Локальные и глобальные переменные
Переменные, созданные внутри подпрограммы, локальны — они не видны снаружи. Это защищает программу от случайного влияния одной части на другую. Обмен данными идёт через параметры и возвращаемое значение. Глобальные переменные, объявленные в основной программе, лучше не менять из подпрограмм без необходимости — это запутывает логику.
Несколько параметров
Подпрограмма может принимать несколько параметров и возвращать несколько значений. Например, функция, считающая сумму и произведение двух чисел:
def schet(a, b):
return a + b, a * b
s, p = schet(3, 4) # s = 7, p = 12
Аргументы подставляются на места параметров по порядку. Поэтому важно соблюдать порядок: для функции delenie(a, b) вызовы delenie(10, 2) и delenie(2, 10) дадут разные результаты.
Зачем нужны подпрограммы
Разбиение программы на подпрограммы даёт сразу несколько выгод. Код становится короче за счёт устранения повторов. Каждую подпрограмму можно отладить отдельно, проверив её на разных данных. Программу легче читать: имя prostoe(n) сразу говорит о назначении, тогда как длинный фрагмент кода нужно разбирать. Готовые подпрограммы можно переносить в другие программы — это называют повторным использованием кода.
Частые ошибки. Путаница процедуры и функции: процедура не возвращает значение, и присваивать её результат бессмысленно. Несовпадение числа аргументов и параметров. Нарушение порядка аргументов. Попытка использовать локальную переменную вне подпрограммы.
Кратко о главном
- Подпрограмма — именованный блок кода для повторного вызова.
- Функция возвращает результат через
return, процедура — нет. - Данные передают через параметры, получают через возвращаемое значение.
- Локальные переменные видны только внутри подпрограммы.