Повторное использование кода
- Функция Python3 как именованный алгоритм
- Отличие от функции в строгом смысле (преобразование данных определённого типа в данные (другого?) определённого типа)
- Задание и вызов функции, блок-со-сдвигом
- функция — это просто объект
правда, он callable() (но бывают и другие callable-объекты)
т. е. объект, который можно вызвать с помощью объект()
Какие callable-объекты нам уже известны (например, типы, bin(), print() и т. п.)
- Формат задания функции, синтаксически значимый сдвиг
- Параметры функции
- Формальные: имена в описании
- Фактические: выражения при вызове
- Возвращаемое значение функции
- и его неиспользование
- Суперпозиция функций
- «Утиная типизация»: все объекты строго типизированы, но по имени этого не скажешь
- ⇒ функция выполнится, если все операции в ней применимы к переданным объектам
- Локальные и глобальные имена, правила видимости
- Время жизни локальных имён (формальных параметров и собственно локальных имён)
locals()
- Загораживание глобальных имён локальными
- Проблема «побочного эффекта»: разрешать или не разрешать связывание с помощью глобальных имён внутри функции:
- Есть связывание ⇒ имя локальное
global
Строка документации, help(функция)
Пример: черепашья графика
- основные команды
- пример функции: треугольник
- пример функции: треугольники по вершинам квадрата
пример функции: что-то по вершинам квадрата (передаём функцию!)
- «треугольник»
circle
- что угодно
- перепишем так, чтобы у каждой из функций был параметр-размер
- пример функции: прямоугольник заданного размера
- пример функции: треугольник 3×4×5 заданного масштаба
- немножко рекурсии (придётся задавать её конец), например, цепочка из N треугольников
- Д/З
TODO
Прочитать и прощёлкать третью главу учебника
Ввести три числа — стороны существующего треугольника, вывести его площадь (Формула_Герона)
- Нарисовать домик (с помощью функций «треугольник» и «прямоугольник»)
- …заданных размера и цветов стен и крыши
- Улицу из N домиков (рекурсия)
- …с перспективой (уменьшающихся)