Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Чаплыгин А.Н. Учимся програмировать вместе с Пи...doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
3 Мб
Скачать
☆

Глава 3. Функции §3.1. Подпрограммы

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

1 1^

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

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

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

В языке Pascal подпрограммы бывают двух типов: процедуры и функции. В Питоне же, так же как и в C++, подпрограммы реализованы в более общем виде, поэтому такого разделения нет - в этих языках есть только функции.

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

34

Ревизия: 170

Функции

§3.2. Вызовы функций

С вызовами функций мы уже сталкивались, когда выполняли определение и преобразование типов значений и переменных:

>»

type

("Hello

wor

Id!")

<type 's

tr'>

>»

int (

"32")

32

Функция, определяющая тип значения или переменной, называется type (); преобразуемое значение или переменная должны следовать после названия функции в скобках - его называют аргументом функции. Как видно из примера, вызов функции int () осуществляется аналогичным образом.

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

>» str ()