Мы уже работали с функциями в Python. На самом деле, наша первая программа уже использовала функцию. print() на самом деле является функцией. min(), max(), input(), sorted() и все другие команды со скобками — это функции.
Функции выполняют несколько команд и в некоторых случаях возвращают результат. min() вычисляет минимум нескольких значений и возвращает это значение. А print(), напротив, выводит значение на экран.
Функции особенно полезны при устранении повторяющегося кода. Мы можем также определять свои собственные функции. Представьте, что вы хотите напечатать определенный объект 3 раза и сделать что-то еще между ними:
Чтобы определить пользовательскую функцию, нужно использовать ключевое слово def, за которым следует имя функции (print_triangle в нашем случае), далее () и :, чтобы обозначить начало блока функции. Список команд, которые должна выполнить функция, помещается в отступе внутри тела функции.
Обе эти программы выполняют точно те же операции, но во второй один и тот же повторяющийся код вынесен в функцию, что исключает копирование и вставку кода.
С другой стороны, в первой программе много копирования и вставки, и если мы решим заменить * на % при печати треугольника, нам придется вносить много изменений и проходить по каждой строке, чтобы сделать замену. Это может привести к беспорядку в больших кодовых базах и очень склонно к ошибкам.
Задание
Определите функцию, которая печатает прямоугольник размером и вызовите ее 3 раза. Границы прямоугольника должны состоять из символа #, а внутренняя часть должна быть пустой.