Различия между версиями 2 и 3
Версия 2 от 2018-10-05 17:11:36
Размер: 2332
Редактор: FrBrGeorge
Комментарий:
Версия 3 от 2018-10-05 17:29:27
Размер: 3826
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 29: Строка 29:
== Рекурсивный вызов функции ==
 * Условный оператор в функции: рекурсия
  * рекурсия — «тяжелая» операция: создание/удаление контекста
  * ⇒ ограничение по глубине
  * ⇒ критерий `log(N)`
 * Актуально ''конечная'' рекурсия:
  1. Инициализация
  1. Проверка условия
  1. (Полезная нагрузка)
  1. Изменение объектов, участвующих в условии
 * Примитивная рекурсия (счётчик)
 * Общая рекурсия (пока данные ''внезапно'' не обретут свойства)
== Цикл (если успеем) ==
 * Хвостовая рекурсия и Гвидо
 * Цикл `while`
 * `break` / `continue`
 * поиск первого и `else` к ''циклу''
== Д/З ==
 1.#0 Прочитать и отщёлкать [[http://greenteapress.com/thinkpython2/html/thinkpython2006.html|пятую главу учебника]]
  * Прочитать и отщёлкать [[http://greenteapress.com/thinkpython2/html/thinkpython2007.html|шестую главу учебника]]
 1. '''TODO''' задание на АЛ
 1. '''TODO''' задание на АЛ
 1. '''TODO''' задание на рекурсию/цикл
 1. '''TODO''' задание на рекурсию/цикл

Логические выражения, условные операторы, рекурсия и цикл

Алгебра логики

  • Операции сравнения, тип bool, True и False

  • Алгебра логики над bool

    • or

      and

      A

      B

      A or B

      A

      B

      A and B

      False

      False

      False

      False

      False

      False

      False

      True

      True

      False

      True

      False

      True

      False

      True

      True

      False

      False

      True

      True

      True

      True

      True

      True

  • Python3: and, or, not; низкий приоритет

  • Пустые и непустые объекты Python3
  • Алгебра логики над произвольными объектами Python3
    • OR: если A истинно, результат истинен, вычислять B не надо
      • ⇒ Python: если A истинно, результат равен A, иначе B
    • AND: если A ложно, результат ложен, вычислять B не надо
      • ⇒ Python: если A ложно, результат равен A, иначе B
    • ⇒ частичное вычисление выражений A и B (например, 3+3 or 100/0)

      or

      and

      A

      B

      A or B

      A

      B

      A and B

      Пусто

      Пусто

      B

      Пусто

      Пусто

      A

      Пусто

      Непусто

      B

      Пусто

      Непусто

      A

      Непусто

      Пусто

      A

      Непусто

      Пусто

      B

      ||

      Непусто || Непусто || A || || Непусто || Непусто || B ||

Выполнение, обусловленное свойствами данных

  • Условная операция выражение-True if выражение-условие else выражение-false

  • Условный оператор: if, if / else, if [/ elif [/ elif ... [else]...]]

  • Вложенный if и and

Рекурсивный вызов функции

  • Условный оператор в функции: рекурсия
    • рекурсия — «тяжелая» операция: создание/удаление контекста
    • ⇒ ограничение по глубине
    • ⇒ критерий log(N)

  • Актуально конечная рекурсия:

    1. Инициализация
    2. Проверка условия
    3. (Полезная нагрузка)
    4. Изменение объектов, участвующих в условии
  • Примитивная рекурсия (счётчик)
  • Общая рекурсия (пока данные внезапно не обретут свойства)

Цикл (если успеем)

  • Хвостовая рекурсия и Гвидо
  • Цикл while

  • break / continue

  • поиск первого и else к циклу

Д/З

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

  2. TODO задание на АЛ

  3. TODO задание на АЛ

  4. TODO задание на рекурсию/цикл

  5. TODO задание на рекурсию/цикл

LecturesCMC/PythonIntro2018/03_ConditionalsRecursion (последним исправлял пользователь FrBrGeorge 2018-10-09 21:28:57)