5546
Комментарий:
|
5556
|
Удаления помечены так. | Добавления помечены так. |
Строка 25: | Строка 25: |
* [[http://pythontutor.com/visualize.html#code=a,%20b%20%3D%203,%204%0A%0Adef%20fun%28a,%20b,%20c%29%3A%0A%20%20%20%20a%20%3D%20a*2%2Bb*c%0A%20%20%20%20return%20a-1%0A%20%20%20%20%0Aprint%28fun%281,2,33%29%29%0Aprint%28fun%28a,b,22%29%29%0Ac,%20d%20%3D%201000%0Aprint%28fun%2810,c,a%29%29&cumulative=false&curInstr=0&heapPrimitives=true&mode=display&origin=opt-frontend.js&py=3&rawInputLstJSON=%5B%5D&textReferences=false|Пример]] | * [[http://pythontutor.com/visualize.html#code=a,%20b%20%3D%203,%204%0A%0Adef%20fun%28a,%20b,%20c%29%3A%0A%20%20%20%20a%20%3D%20a*2%2Bb*c%0A%20%20%20%20return%20a-1%0A%20%20%20%20%0Aprint%28fun%281,2,33%29%29%0Aprint%28fun%28a,b,22%29%29%0Ac,%20d%20%3D%201000,%20100500%0Aprint%28fun%2810,c,a%29%29&cumulative=false&curInstr=0&heapPrimitives=true&mode=display&origin=opt-frontend.js&py=3&rawInputLstJSON=%5B%5D&textReferences=false|Пример]] |
Повторное использование кода
- Функция Python3 как именованный алгоритм
- Отличие от функции в строгом смысле (преобразование данных определённого типа в данные (другого?) определённого типа)
- Задание и вызов функции, блок-со-сдвигом
- функция — это просто объект
правда, он callable() (но бывают и другие callable-объекты)
т. е. объект, который можно вызвать с помощью объект()
Какие callable-объекты нам уже известны (например, типы, bin(), print() и т. п.)
- Формат задания функции, синтаксически значимый сдвиг
- Параметры функции
- Формальные: имена в описании
- Фактические: выражения при вызове
- Возвращаемое значение функции
- и его неиспользование
- Суперпозиция функций
- «Утиная типизация»: все объекты строго типизированы, но по имени этого не скажешь
- ⇒ функция выполнится, если все операции в ней применимы к переданным объектам
- Локальные и глобальные имена, правила видимости
- Время жизни локальных имён (формальных параметров и собственно локальных имён)
locals()
- Загораживание глобальных имён локальными
- Проблема «побочного эффекта»: разрешать или не разрешать связывание с помощью глобальных имён внутри функции:
- Есть связывание ⇒ имя локальное
global
Строка документации, help(функция)
Пример: черепашья графика
- Равносторонний треугольник
- Равносторонний треугольник с заданной стороной
- Треугольники по вершинам квадрата
- Квадрат с заданной стороной и окружность с заданным радиусом
Что-то по вершинам квадрата (передаём функцию!)
Вызов этой функции (мы ей передаём в качестве параметра функцию, которая будет рисовать это самое что-то)
Редизайн: когда поднимать и опускать перо? (TODO)
- Д/З
- Функции и черепашка
Прочитать и прощёлкать третью главу учебника
Прощёлкать примеры из документации по turtle
Ввести три числа — стороны существующего треугольника, вывести его площадь (Формула_Герона)
- Нарисовать домик (с помощью функций «треугольник» и «прямоугольник»)
- +задать в качестве параметра размер и цвета стен и крыши
- +с окном и дверью
+…