4310
Комментарий:
|
5548
|
Удаления помечены так. | Добавления помечены так. |
Строка 27: | Строка 27: |
Пример: черепашья графика * основные команды * пример функции: равносторонний треугольник * пример функции: треугольники по вершинам квадрата * пример функции: равносторонний треугольник с заданной стороной * пример функции: прямоугольник с заданными размерами сторон * пример функции: треугольник 3×4×5 заданного масштаба * пример функции: ''что-то'' по вершинам квадрата (передаём функцию!) * треугольник с заданной стороной * `circle` с заданным радиусом * квадрат с заданной стороной * … * Редизайн: где `penup()`, где `pendown()`? |
Пример: [[py3doc:turtle.html|черепашья графика]] * [[http://interactivepython.org/runestone/static/IntroPythonTurtles/Summary/summary.html|основные команды]] * Равносторонний треугольник {{{#!python def trg(): fd(100) lt(120) fd(100) lt(120) fd(100) lt(120) }}} * Равносторонний треугольник с заданной стороной {{{#!python def trgS(size): fd(size) lt(120) fd(size) lt(120) fd(size) lt(120) }}} * Треугольники по вершинам квадрата {{{#!python def trgsq(): trgS(10) lt(90) penup() fd(100) pendown() trgS(10) lt(90) penup() fd(100) pendown() trgS(10) lt(90) penup() fd(100) pendown() trgS(10) lt(90) penup() fd(100) pendown() }}} * Квадрат с заданной стороной и окружность с заданным радиусом {{{#!python def sqrS(size): fd(size) lt(90) fd(size) lt(90) fd(size) lt(90) fd(size) lt(90) def crcS(size): circle(size) }}} * ''Что-то'' по вершинам квадрата (передаём функцию!) {{{#!python def smthSQ(size, funct): funct(size) pu() fd(100) lt(90) pd() funct(size) pu() fd(100) lt(90) pd() funct(size) pu() fd(100) lt(90) pd() funct(size) pu() fd(100) lt(90) pd() }}} * Вызов этой функции (мы её передаём в качестве параметра функцию, которая будет рисовать это самое ''что-то'') {{{#!python smthSQ(15, trgS) pu() goto(-100,-100) pd() smthSQ(20, sqrS) pu() goto(100,100) pd() smthSQ(25, crcS) }}} * Редизайн: когда поднимать и опускать перо? ('''TODO''') |
Строка 42: | Строка 128: |
* Прощёлкать примеры из [[py3doc:turtle.html|документации по turtle]] | |
Строка 44: | Строка 131: |
* …заданных размера и цветов стен и крыши * …с окном и дверью |
* +задать в качестве параметра размер и цвета стен и крыши * +с окном и дверью * +… ;) |
Повторное использование кода
- Функция Python3 как именованный алгоритм
- Отличие от функции в строгом смысле (преобразование данных определённого типа в данные (другого?) определённого типа)
- Задание и вызов функции, блок-со-сдвигом
- функция — это просто объект
правда, он callable() (но бывают и другие callable-объекты)
т. е. объект, который можно вызвать с помощью объект()
Какие callable-объекты нам уже известны (например, типы, bin(), print() и т. п.)
- Формат задания функции, синтаксически значимый сдвиг
- Параметры функции
- Формальные: имена в описании
- Фактические: выражения при вызове
- Возвращаемое значение функции
- и его неиспользование
- Суперпозиция функций
- «Утиная типизация»: все объекты строго типизированы, но по имени этого не скажешь
- ⇒ функция выполнится, если все операции в ней применимы к переданным объектам
- Локальные и глобальные имена, правила видимости
- Время жизни локальных имён (формальных параметров и собственно локальных имён)
locals()
- Загораживание глобальных имён локальными
- Проблема «побочного эффекта»: разрешать или не разрешать связывание с помощью глобальных имён внутри функции:
- Есть связывание ⇒ имя локальное
global
Строка документации, help(функция)
Пример: черепашья графика
- Равносторонний треугольник
- Равносторонний треугольник с заданной стороной
- Треугольники по вершинам квадрата
- Квадрат с заданной стороной и окружность с заданным радиусом
Что-то по вершинам квадрата (передаём функцию!)
Вызов этой функции (мы её передаём в качестве параметра функцию, которая будет рисовать это самое что-то)
Редизайн: когда поднимать и опускать перо? (TODO)
- Д/З
- Функции и черепашка
Прочитать и прощёлкать третью главу учебника
Прощёлкать примеры из документации по turtle
Ввести три числа — стороны существующего треугольника, вывести его площадь (Формула_Герона)
- Нарисовать домик (с помощью функций «треугольник» и «прямоугольник»)
- +задать в качестве параметра размер и цвета стен и крыши
- +с окном и дверью
+…