Различия между версиями 5 и 6
Версия 5 от 2017-10-15 14:35:39
Размер: 2993
Редактор: FrBrGeorge
Комментарий:
Версия 6 от 2017-10-15 14:40:03
Размер: 2965
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 58: Строка 58:
 * /!\ тупо посчитать определитель 4×4 (написать функцию)  * <<EJCMC(86, Det4x4, Определитель матрицы 4×4)>>

Функции и генераторы

Разбор Д/З №2

Условное выражение A if C else B

Цикл for: повторение

  • iter(объект) → объект-итератор (.__getitem__() или .__iter__())

  • next() и StopIteration

  • range(), reversed(), enumerate(), zip()

Кстати, zip() не было, а зря!

Функции

Пространства имён: повторение

  • Задание функции: формальные и фактические параметры, return

  • Duck typing: функция как формализация алгоритма

  • функция как локальное пространство имён

    • определение локальности по связыванию, global

    • nonlocal для вложенных функций

  • функция как объект: именование, передача в качестве параметра
  • лямбда-функции (функции-выражения)

Распаковка и запаковка последовательностей

  • при связывании
  • в цикле for

  • при передаче параметров в функцию
    • распаковка
    • запаковка
    • функция с произвольным числом параметров

Генераторы

Повторно-входимые функции as is

Pуthon3: генераторы

  • Задание: yield

  • Принцип работы
  • это же итератор!

Параметрические итераторы:

  • a = yield b, первый p0 = next(gen), дальше pk = gen.send(a)

== Itertools = Если успеем

py2lib:itertools.html

Неполные вычисления (например, с бесконечными итераторами)

Полезности: комбинаторика, повторители, …

Д/З

  • {i} Прочитать про функции, итераторы и генераторы в учебнике

  • Как одним print()-ом вывести все элементы произвольного кортежа Python3 через пробел?

  • Придумать пример «из жизни» для вложенного задания функции


TODO

  • EJudge: Det4x4 'Определитель матрицы 4×4'

    Матрица 4×4 задаётся кортежем из 4 кортежей по 4 целых числа в каждом. Посчитать определитель этой матрицы. Допустимо заранее составить (а не вычислять на ходу) последовательность из всех перестановок индексов и знаков этих перестановок.

    Input:

    (5, -4, 4, -7), (1, -2, 6, 0), (3, -8, -6, -4), (-1, 2, -9, 3)
    Output:

    702
  • /!\ вводится что-то вроде Mul(Add(2,3),"QQ"), выводится QQQQQQQQQQ

  • /!\ рекуррентная последовательность (генератор)

  • /!\ вычисление Пи на скорость (написать генератор)

LecturesCMC/PythonIntro2017/04_Functions (последним исправлял пользователь FrBrGeorge 2017-10-26 15:48:57)