Различия между версиями 4 и 5
Версия 4 от 2017-10-13 16:29:27
Размер: 2822
Редактор: FrBrGeorge
Комментарий:
Версия 5 от 2017-10-15 14:35:39
Размер: 2993
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 53: Строка 53:
 * /!\ Прочитать про функции и генераторы
 * Как одним `print()`-ом вывести несколько объектов `Python3` через пробел?
 * Придумать «пример из жизни» для `v = yield объект`
  * не похоже ли на инициализацию и изменение из канонической схемы цикла?
 * /!\ тупо посчитать определитель (написать функцию)
 * {i} Прочитать про [[py3tut:controlflow.html#defining-functions|функции]], [[py3tut:classes.html#iterators|итераторы]] и [[py3tut:classes.html#generators|генераторы]] в учебнике
 * Как одним `print()`-ом вывести все элементы произвольного кортежа `Python3` через пробел?
 * Придумать пример «из жизни» для вложенного задания функции
----
'''TODO'''
 * /!\ тупо посчитать определитель 4×4 (написать функцию)
Строка 59: Строка 60:
 * /!\ рекуррентная последовательность (генератор)
Строка 60: Строка 62:
 * /!\ `itertools`

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

Разбор Д/З №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

  • /!\ тупо посчитать определитель 4×4 (написать функцию)

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

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

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

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