Процедуры в Python

05.01.2023 0 Автор : Марина Николаевна
Процедуры в Python

Процедуры в Python.

Процедуры — это отдельные подпрограммы, входящие в основную программу или отдельная часть программы, имеющая имя.

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

 

Параметры — это данные, которые принимает процедура. В процедуре они обозначаются имена.

Рефакторинг — это изменение программы, которое не влияет на результат ее работы, но делает её более понятной для человека.

Компьютерная графика в Python требует использование процедур.

Рассмотрим такую программу, которая рисует домик на экране¹

penColor ("black")
brushColor ("green")
rectangle (100, 100, 200, 200)

brushColor ("brown")
polygon ([(90, 100), (150, 50), (210, 100), (90, 100)])

penColor ("white")
penSize (3)
brushColor ("black")
rectangle (120. 140. 150. 140)
line(135, 140, 150, 170)

Блоки программы отделяются пустыми строками. Каждый блок выполняет свою функцию:

  • первый рисует основную часть домика ;
  • второй рисует крышу;
  • третий — окно.

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

Для облегчения задачи определения блока окна, в программе пишут комментарии:

# основная часть домика
penColor ("black")
brushColor ("green")
rectangle (100, 100, 200, 200)

# крыша
brushColor ("brown")
polygon ([(90, 100), (150, 50), (210, 100), (90, 100)])

# окно
penColor ("white")
penSize (3)
brushColor ("black")
rectangle (120. 140. 150. 140)
line(135, 140, 150, 170)

Кроме комментариев есть и другой прием. Можно оформить блоки рисования каждой части домика как отдельные вспомогательные алгоритмы (подпрограммы или процедуры) и дать им имена, например: frame (по-английски — сруб, основная часть дома), roof (крыша) и window (окно). Получается такая программа:

def frame():
penColor ("black")
brushColor ("green")
rectangle (100, 100, 200, 200)

def roof():
penColor ("black")
brushColor ("brown")
polygon ([90,100), (150,50), (210, 100), (90, 100)])

def window():
penColor ("white")
penSize (3)
brushColor ("black")
rectangle (120, 120, 150, 170)
line (120, 140, 150, 140)
line (135, 140, 150, 170)

frame ()
roof ()
window ()

Три строчки программы и есть основная программа. Видно, что основная программа состоит из трех команд — вызов процедур. 

Если раньше были показаны  использование команд из встроенной библиотеки языка Python, то сейчас представили процесс создания команд самостоятельно.

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

Все команды, которые входят в процедуру, записывают в следующих строках с одинаковым сдвигом вправо, например, на два или четыре символа.

Основная программа, где вызываются процедуры, записывается без отступа, начиная с первой позиции строки.

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

В программировании действия, которые описаны в данной статье называют рефакторингом.

Рефакторинг — это изменение программы, которое не влияет на результаты работы программы, но делает ее более понятной человеку.

¹Здесь и далее для сокращения записи каждый раз не пишется команда импорта модуля graph и команду run в конце программы.