Различия между версиями 5 и 6
Версия 5 от 2018-09-24 22:47:03
Размер: 4181
Редактор: FrBrGeorge
Комментарий:
Версия 6 от 2018-09-24 22:53:43
Размер: 4299
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 30: Строка 30:
  * пример функции: треугольники по вершинам квадрата   * пример функции: треугольники по вершинам квадрата 
Строка 35: Строка 35:
   * перепишем так, чтобы у каждой из функций был параметр-размер

Повторное использование кода

  • Функция Python3 как именованный алгоритм
    • Отличие от функции в строгом смысле (преобразование данных определённого типа в данные (другого?) определённого типа)
  • Задание и вызов функции, блок-со-сдвигом
    • функция — это просто объект
    • правда, он callable() (но бывают и другие callable-объекты)

      • т. е. объект, который можно вызвать с помощью объект()

    • Какие callable-объекты нам уже известны (например, типы, bin(), print() и т. п.)

    • Формат задания функции, синтаксически значимый сдвиг
  • Параметры функции
    • Формальные: имена в описании
    • Фактические: выражения при вызове
  • Возвращаемое значение функции
    • и его неиспользование
  • Суперпозиция функций
  • «Утиная типизация»: все объекты строго типизированы, но по имени этого не скажешь
    • ⇒ функция выполнится, если все операции в ней применимы к переданным объектам
  • Локальные и глобальные имена, правила видимости
    • Время жизни локальных имён (формальных параметров и собственно локальных имён)
    • locals()

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

    • Пример

    • Строка документации, help(функция)

Пример: черепашья графика

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

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

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

TODO

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

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

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

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