Курс программирования Python. Функции.

Функции в Python.

python-logo-master-v3-tm
Привет, в нашем Курсе программирования мы продолжим изучать основы синтаксиса Python в ходе работы над игрой «Поле Чудес». В сегодняшнем уроке мы рассмотрим такой вопрос как функции в Python.

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

В ходе нашего курса мы уже сталкивались с понятием функции, правда в специфическом контексте. Да, вы правильно поняли, я говорю об анонимных функциях(они же lambda-функции).
Определить функцию в Python очень просто:

Существуют некоторые правила для создания функций в Python:

  • Блок функции начинается с ключевого слова def, после которого следуют название функции и круглые скобки ().
  •  аргументы, которые принимает функция должны находиться внутри этих скобок.
  •  После скобок идет двоеточие ( : ) и с новой строки с отступом начинается тело функции

Внимательно изучив программу, созданную в предыдущем уроке, найдем повторяющиеся участки кода. В нашей игре первый кандидат на вынос в подпрограмму – вывод табло на экран. Почему первый – потому что снижает читаемость основной логики программы. Создадим функцию print_tablo(ua), которая будет принимать в качестве аргумента шаблон ответа с отгаданными буквами и выводить на экран наше табло.
Вот она:

В принципе, единственное ограничение по расположению тела функции в файле с исходным кодом — это «вызов функции должен происходить после ее определения». Поэтому я функции определяю в начале файла, сразу после блока импортирования.
Теперь заменим следующий блок кода на вызов функции print_tablo(ua):
Было:

Стало:

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

Обратите внимание: все переменные, использованные в подпрограмме print_tablo – ЛОКАЛЬНЫЕ, и доступ к ним из основной программы НЕВОЗМОЖЕН. Любая попытка обратиться к ним по имени вызовет ошибку вида: NameError: name ‘tablo’ is not defined

В нашем определении функции print_tablo(ua) мы указали, что данная функция должна принимать строго один аргумент, т.е. вызовы

вернут ошибку.
Функции в Python позволяют указать значения параметров по умолчанию:

Теперь при вызове функции print_tablo() без аргументов она будет выводить шаблон табло со словом answer:

Осталось только задокументировать нашу функцию. Функции в Python обладают встроенными возможностями документации:

Вывод документации осуществляется следующим образом:
если ваш файл с исходным кодом сохранен в кодировке utf-8:

если же это Unicode:

И теперь весь код нашей игры выглядит следующим образом:

Вот и все! Более подробно о функциях в Python вы можете прочитать в нашем справочнике Python.
В следующем уроке коснемся темы объектно-ориентированного программирования на Python. Добавим к нашей игре персону игрока и легендарные «100 очков на барабане!», вместе с самим барабаном.

Следующий урок