Различия между версиями 3 и 4
Версия 3 от 2018-09-24 16:32:00
Размер: 3232
Редактор: FrBrGeorge
Комментарий:
Версия 4 от 2018-09-24 22:43:00
Размер: 4141
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 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()

    • Загораживание глобальных имён локальными
    • Проблема «побочного эффекта»: разрешать или не разрешать связывание с помощью глобальных имён внутри функции:
      1. Есть связывание ⇒ имя локальное
      2. global

    • Пример

  • Пример: черепашья графика
    • основные команды
    • пример функции: треугольник
    • пример функции: треугольники по вершинам квадрата
    • пример функции: что-то по вершинам квадрата (передаём функцию!)

      • «треугольник»
      • circle

      • что угодно
    • пример функции: прямоугольник заданного размера
    • пример функции: треугольник 3×4×5 заданного масштаба
    • немножко рекурсии (придётся задавать её конец), например, цепочка из N треугольников
  • Д/З

    TODO

    • Прочитать и прощёлкать третью главу учебника

    • Ввести три числа — стороны существующего треугольника, вывести его площадь (Формула_Герона)

    • Нарисовать домик (с помощью функций «треугольник» и «прямоугольник»)
      • …заданных размера и цветов стен и крыши
    • Улицу из N домиков (рекурсия)
      • …с перспективой (уменьшающихся)

Python/PsyPython2018/03_Functions (последним исправлял пользователь FrBrGeorge 2018-10-02 01:19:18)