2822
Комментарий:
|
2993
|
Удаления помечены так. | Добавления помечены так. |
Строка 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 = Если успеем
Неполные вычисления (например, с бесконечными итераторами)
Полезности: комбинаторика, повторители, …
Д/З
Прочитать про функции, итераторы и генераторы в учебнике
Как одним print()-ом вывести все элементы произвольного кортежа Python3 через пробел?
- Придумать пример «из жизни» для вложенного задания функции
TODO
тупо посчитать определитель 4×4 (написать функцию)
вводится что-то вроде Mul(Add(2,3),"QQ"), выводится QQQQQQQQQQ
рекуррентная последовательность (генератор)
вычисление Пи на скорость (написать генератор)