## page was renamed from LecturesCMC/PythonIntro2019/04_FunctionsGenerators = Функции и множества = К прошлой лекции: оператор `del` == Множества == * Неиндексируемая последовательность * все элементы не равны друг другу * порядок элементов не определён * Может состоять только из неизменяемых объектов * Поиск элемента в множестве имеет в среднем '''логарифмическую''' сложность (а не линейную, как в списке) * Поддерживаются теоретико-множественные операции, методы `pop()`, `add()` и т. п. == Функции == Пространства имён: повторение * Задание функции: формальные и фактические параметры, `return` * Duck typing: функция как формализация алгоритма * ''вызов'' функции как локальное пространство имён * `globals()` и `locals()` * сложный случай определение локальности по связыванию, `global` * `nonlocal` для вложенных вызовов * функция как объект: именование, передача в качестве параметра * лямбда-функции (функции-выражения) === Распаковка и запаковка последовательностей === * при связывании * в цикле `for` * при передаче параметров в функцию * распаковка * запаковка * функция с произвольным числом параметров * Параметры функции по умолчанию (именованные параметры)ё === Другие вычислимые последовательности === * `range()`, `reversed()`, `enumerate()`, `zip()` == Д/З == 1. Прочитать в tutorial про [[py3tut:controlflow.html#defining-functions|функции]], [[py3tut:datastructures.html#sets|множества]] и [[py3tut:datastructures.html#looping-techniques|различные последовательности]] 1. <> 1. <> 1. <> 1. <>