3232
Комментарий:
|
4141
|
Удаления помечены так. | Добавления помечены так. |
Строка 28: | Строка 28: |
* треугольник * треугольник заданного размера * немножко рекурсии (придётся задавать её конец) * |
* пример функции: треугольник * пример функции: треугольники по вершинам квадрата * пример функции: ''что-то'' по вершинам квадрата (передаём функцию!) * «треугольник» * `circle` * что угодно * пример функции: прямоугольник заданного размера * пример функции: треугольник 3×4×5 заданного масштаба * немножко рекурсии (придётся задавать её конец), например, цепочка из N треугольников |
Строка 33: | Строка 38: |
* /!\ Учебник: прочитать и прощёлкать [[http://greenteapress.com/thinkpython2/html/thinkpython2004.html|третью главу]] * /!\ Какие-нибудь формулы в функцию * /!\ Суперпозиция */!\ черепашка |
* Прочитать и прощёлкать [[http://greenteapress.com/thinkpython2/html/thinkpython2004.html|третью главу]] учебника * Ввести три числа — стороны существующего треугольника, вывести его площадь ([[RW:Формула_Герона]]) * Нарисовать домик (с помощью функций «треугольник» и «прямоугольник») * …заданных размера и цветов стен и крыши * Улицу из N домиков (рекурсия) * …с перспективой (уменьшающихся) |
Повторное использование кода
- Функция Python3 как именованный алгоритм
- Отличие от функции в строгом смысле (преобразование данных определённого типа в данные (другого?) определённого типа)
- Задание и вызов функции, блок-со-сдвигом
- функция — это просто объект
правда, он callable() (но бывают и другие callable-объекты)
т. е. объект, который можно вызвать с помощью объект()
Какие callable-объекты нам уже известны (например, типы, bin(), print() и т. п.)
- Формат задания функции, синтаксически значимый сдвиг
- Параметры функции
- Формальные: имена в описании
- Фактические: выражения при вызове
- Возвращаемое значение функции
- и его неиспользование
- Суперпозиция функций
- «Утиная типизация»: все объекты строго типизированы, но по имени этого не скажешь
- ⇒ функция выполнится, если все операции в ней применимы к переданным объектам
- Локальные и глобальные имена, правила видимости
- Время жизни локальных имён (формальных параметров и собственно локальных имён)
locals()
- Загораживание глобальных имён локальными
- Проблема «побочного эффекта»: разрешать или не разрешать связывание с помощью глобальных имён внутри функции:
- Есть связывание ⇒ имя локальное
global
- Пример: черепашья графика
- основные команды
- пример функции: треугольник
- пример функции: треугольники по вершинам квадрата
пример функции: что-то по вершинам квадрата (передаём функцию!)
- «треугольник»
circle
- что угодно
- пример функции: прямоугольник заданного размера
- пример функции: треугольник 3×4×5 заданного масштаба
- немножко рекурсии (придётся задавать её конец), например, цепочка из N треугольников
- Д/З
TODO
Прочитать и прощёлкать третью главу учебника
Ввести три числа — стороны существующего треугольника, вывести его площадь (Формула_Герона)
- Нарисовать домик (с помощью функций «треугольник» и «прямоугольник»)
- …заданных размера и цветов стен и крыши
- Улицу из N домиков (рекурсия)
- …с перспективой (уменьшающихся)