На Горох
Информатика, 9 класс

§ 25. Функции

"Информатика", Поляков К.Ю., Еремин Е.А.

Объяснение темы В оглавлении: § 25. Функции

Кратко о теме

Функция — именованный блок команд, который выполняет отдельную задачу. Его можно вызвать из разных частей программы, поэтому повторяющиеся действия не приходится записывать заново. Функции принимают данные через параметры, а при вызове получают конкретные аргументы. Если нужно передать результат обратно в программу, используют return. Понимание функций помогает делать код понятнее, делить большие задачи на части и повторно использовать готовые решения.

Объяснение темы

Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.

Определения и обозначения

Функция — именованная часть программы, которую можно вызвать из разных мест. Она объединяет команды, выполняющие одну задачу. Если одинаковое действие нужно в нескольких местах, достаточно описать его один раз и вызывать по имени: так меньше повторов и проще исправлять программу.

Параметр функции — переменная, указанная в заголовке функции и предназначенная для получения данных. Например, в записи def квадрат(x): параметр — x. Он нужен, чтобы функция могла работать не с одним заранее заданным числом, а с разными данными.

Аргумент — конкретное значение, которое передают функции при вызове. В вызове квадрат(5) аргументом является число 5, и оно связывается с параметром x. Благодаря этому одна и та же функция может выполнять вычисление для разных значений.

Возвращаемое значение — результат работы функции, который передаётся обратно в место вызова с помощью return. Например, функция может вычислить квадрат числа и вернуть его, чтобы основная программа могла сохранить результат, вывести его или использовать в другом вычислении.

Как это устроено

Определение функции начинается с ключевого слова def, затем записывают имя, параметры в круглых скобках и двоеточие. Например: def удвоить(x):. Команды, которые относятся к функции, размещают ниже с отступом. Отступ показывает Python, что эти команды образуют тело функции, а не продолжают основную программу.

Определение функции само по себе не выполняет команды из её тела: оно лишь сообщает программе, какие действия связаны с указанным именем. Это удобно, потому что функцию часто нужно описать раньше, чем появится необходимость её использовать. Чтобы запустить действия, функцию вызывают по имени и записывают скобки, например удвоить(4).

При вызове переданные аргументы связываются с параметрами в том порядке, в котором они указаны. Если функция определена как def разность(a, b):, то в вызове разность(9, 2) параметр a получит значение 9, а b — значение 2. После этого Python выполняет команды тела сверху вниз, поэтому порядок команд влияет на результат.

Команда return завершает работу функции и передаёт результат в место вызова. Например, return a + b возвращает сумму, которую можно присвоить переменной или вывести. Если задача функции — выполнить действие, например напечатать сообщение, явный return может не понадобиться; однако вывод на экран и возврат значения — разные вещи.

Переменные, созданные внутри функции, обычно являются локальными: они существуют в пределах её тела. Это помогает разным функциям использовать одинаковые имена для своих временных данных, не мешая друг другу. Основная программа не может обратиться к такой переменной напрямую, потому что она не входит в её область действия; нужный результат следует вернуть через return.

Основные элементы функции

ЭлементНазначениеЧто указать или сделать
Заголовок функцииЗадаёт имя и входные данныеdef, имя, параметры и двоеточие
Тело функцииОписывает выполняемые действияКоманды с отступом
Вызов функцииЗапускает выполнение телаИмя функции и аргументы в скобках
returnПередаёт результат в место вызоваВыражение с результатом

При написании функции удобно проверять элементы по таблице сверху вниз: сначала оформить заголовок и тело, затем найти место, где её нужно вызвать. Если программе требуется получить результат вычисления, добавьте return с нужным выражением. Вызов и определение — не одно и то же: вызов запускает уже описанные действия.

Разбор задач

Вывести квадрат числа

Условие: написать функцию, которая принимает число и выводит его квадрат, затем вызвать её для числа 5. Здесь цель функции — именно показать результат на экране, поэтому достаточно использовать print внутри тела. Важно отличить строку определения от отдельной команды вызова.

  1. Выбираем имя квадрат и параметр x, который будет получать число.
  2. Записываем заголовок def квадрат(x):, а в теле с отступом команду print(x * x).
  3. После определения вызываем функцию командой квадрат(5). Аргумент 5 связывается с параметром x, и тело вычисляет 5 * 5.

Ответ: программа выведет 25. Если написать только определение с def, число не появится: для запуска нужна команда квадрат(5). В этой задаче функция печатает результат, а не возвращает его для дальнейших вычислений.

Вернуть большее из двух чисел

Условие: функция принимает два числа и возвращает большее, а программа выводит результат для чисел, введённых пользователем. Поскольку значение понадобится за пределами функции, используем return, а не только print. Сравнение можно выполнить условием if и выбрать одно из двух чисел.

  1. Определяем функцию def большее(a, b): с двумя параметрами.
  2. В теле проверяем, больше ли a, чем b. Если да, выполняем return a, иначе — return b.
  3. Считываем два числа, вызываем функцию с этими значениями и передаём её результат в print.

Ответ: для чисел 8 и 3 вызов вернёт 8, и на экран будет выведено 8. Можно записать результат вызова в переменную, например ответ = большее(a, b), а затем вывести её. Так возвращённое значение остаётся доступным вызывающему коду.

Посчитать положительные элементы списка

Условие: функция принимает список чисел и возвращает количество положительных элементов. Чтобы получить количество, заведём счётчик и будем увеличивать его при каждом числе больше нуля. Цикл нужен, чтобы проверить каждый элемент списка, а условие — чтобы учитывать только подходящие числа.

  1. Создаём функцию def количество_положительных(числа): и устанавливаем внутри неё счётчик count = 0.
  2. Перебираем элементы циклом for число in числа. Если число > 0, увеличиваем count на единицу.
  3. После цикла выполняем return count. В основной программе считываем список, вызываем функцию и выводим полученное значение.

Ответ: для списка [-2, 4, 0, 7] функция вернёт 2, потому что положительны только 4 и 7. Ноль не считается положительным, поэтому условие должно быть именно число > 0. После вызова число 2 можно вывести или использовать в другом выражении.

Типичные ошибки

Ожидать, что тело начнёт выполняться сразу после def. Определение только создаёт функцию, а начинающие иногда принимают его за команду запуска. Проверьте, есть ли ниже отдельный вызов по имени со скобками: без него команды тела не выполнятся.

Путать параметры и аргументы. Параметры записывают в заголовке, а аргументы передают при вызове; путаница мешает понять, откуда функция получает данные. Чтобы проверить себя, найдите обе записи и сопоставьте их по порядку: параметр x при вызове функция(5) получает аргумент 5.

Обращаться к локальной переменной снаружи функции. Это часто происходит, когда временную переменную внутри тела принимают за общую для всей программы. Если Python сообщает, что имя не определено, проверьте, где переменная создана; нужное значение можно вернуть через return.

Считать, что print возвращает результат. print выводит текст или число на экран, но не передаёт его вызывающему коду. Если результат нужно сохранить или использовать дальше, проверьте, есть ли return; отдельно решите, требуется ли затем вывести возвращённое значение.

Связь с другими темами

Для работы с функциями нужны знакомые основы Python: команды, переменные, условия и циклы. Внутри функции можно применять их так же, как в основной программе, например перебирать список циклом и проверять элементы условием. Функции помогают повторно использовать код и делить программу на небольшие части, которые проще проверять и изменять. При решении более крупных задач этот подход становится особенно полезен, в том числе при изучении рекурсивных алгоритмов.

Что запомнить

  • Функцию определяют с помощью def.
  • Определение функции не запускает её тело.
  • Для запуска функции её вызывают по имени.
  • Параметры указывают в заголовке, аргументы передают при вызове.
  • return завершает функцию и возвращает результат.
  • Локальные переменные доступны внутри своей функции.

Частые вопросы по теме

Чем функция отличается от команды, записанной в основной программе?

Команда в основной программе выполняется в том месте, где записана. Функция объединяет команды под именем: её можно вызвать из разных мест и передать ей данные. Так повторяющиеся действия не нужно дублировать.

Почему после определения функции она ещё не выполняется?

Команда def создаёт функцию и запоминает, какие действия нужно выполнить при её вызове. Это позволяет определить функцию до того, как она понадобится. Тело запускается только при обращении к имени функции со скобками.

Чем параметр отличается от аргумента?

Параметр — имя переменной в заголовке функции, через которую она получает данные. Аргумент — конкретное значение, переданное при вызове. Например, в вызове квадрат(5) число 5 — аргумент, а соответствующий параметр указан в определении функции.

Можно ли вернуть из функции сразу несколько значений?

Да. В Python команда return может вернуть несколько значений, разделённых запятыми: например, return минимум, максимум. При вызове их можно сохранить в две переменные, и каждое значение попадёт в свою переменную.

Почему переменная, созданная внутри функции, недоступна снаружи?

Такая переменная обычно локальная: она принадлежит телу функции и нужна для её работы. Основная программа не видит её по имени, потому что область действия переменной ограничена функцией. Если результат нужно использовать снаружи, его возвращают через return.

Спросить по теме параграфа

§ 25. Функции

Эта же тема в других учебниках

Учебник

Оглавление →
Предмет
Информатика
Класс
9 класс
Учебник
"Информатика", Поляков К.Ю., Еремин Е.А.