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