Функции в языке программирования Python. Урок 13

Конспект урока
Курс: Основы программирования на Python
Уровень: Программирование для начинающих

1. Нужны ли функции?

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

Представим себе следующую ситуацию. Требуется написать скрипт, который при исполнении должен три раза запрашивать у пользователя разные данные, но выполнять с ними одни и те же действия.

Как бы выглядел программный код, если бы не было функций

Данная программа находит модуль разницы двух чисел. Очевидно, что такая запись исходного кода не рациональна: три почти одинаковых блока. На самом деле можно было бы использовать цикл while для организации повторения.

Использование цикла While при программировании на Python

Однако, в этом случае есть небольшая проблема. Вводимые пользователем данные всегда связываются с переменными a и b. При каждом витке цикла старые данные теряются. Но что делать, если ссылку на вводимые пользователем данные (все шесть чисел) надо сохранить для дальнейшего использования этих самых данных в программном коде. В данном случае поможет использование функций.

2. Программирование функций на python

Предыдущий скрипт, но уже с использованием функций на языке программирования Python, может выглядеть так:

Использование функций при программировании на Python

Разберем представленный программный код. def – это инструкция (команда) языка программирования Python, позволяющая создавать функцию. schet – это имя функции, которое (так же как и имена переменных) может быть почти любым, но желательно смысловым. Далее идет двоеточие, обозначающее окончание заголовка функции (аналогично с условиями и циклами). После заголовка, с новой строки и с отступом, следуют выражения тела функции. В конце тела функции присутствует инструкция return (которой может и не быть), она передает то или иное значение в основную ветку программы. Если бы в функции не было инструкции return, то в основную программу ничего бы не возвращалось и переменным c и d (или e и f, а также z и x) ничего не присваивалось.

После функции идет, так называемая, основная ветка программы, в которой переменным попарно присваивается результат выполнения вызываемой функции. На самом деле вызов функции может ничему и не присваиваться.

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

3. Практическая работа

  1. По аналогии с примером представленным в уроке напишите скрипт, в котором бы в теле функции производились вычисления со значениями трех переменных.
  2. Придумайте программу, в которой бы присутствовали две функции, основная ветка программы содержала не менее 10 строк, и каждая функция вызывалась как минимум один раз.