Lesson 4
Lesson 4
разработчик
Lesson 4
Итерируемый объект (iterable или iterable object)
• Итерация - это общий термин, который описывает процедуру взятия
элементов чего-то по очереди.
• В более общем смысле, это последовательность инструкций, которая
повторяется определенное количество раз или до выполнения указанного
условия.
• Итерируемый объект (iterable) - это объект, который способен
возвращать элементы по одному. Кроме того, это объект, из которого
можно получить итератор.
Определим простейшую функцию Теперь мы ее можем вызвать Функция может быть любой сложности и
возвращать любые объекты (списки, кортежи,
и даже функции!)
Как видно из примера, args - это кортеж из всех В переменной kwargs у нас хранится словарь, с которым мы, опять-
переданных аргументов функции, и с переменной таки, можем делать все, что нам заблагорассудится.
можно работать также, как и с кортежем.
Args, kwargs
Функция также может принимать переменное количество Функция может принимать и произвольное число именованных
позиционных аргументов, тогда перед именем ставится * аргументов, тогда перед именем ставится **
Как видно из примера, args - это кортеж из всех В переменной kwargs у нас хранится словарь, с которым мы, опять-
переданных аргументов функции, и с переменной таки, можем делать все, что нам заблагорассудится.
можно работать также, как и с кортежем.
Анонимные функции, lambda
Анонимные функции могут содержать лишь одно выражение, но и выполняются они быстрее.
Анонимные функции создаются с помощью инструкции lambda. Кроме этого, их не обязательно
присваивать переменной, как делали мы инструкцией def func():
lambda функции, в отличие от обычной, не требуется инструкция
return, а в остальном, ведет себя точно так же
Область видимости переменных
Область видимости или scope определяет контекст переменной, в рамках которого ее можно
использовать. В Python есть два типа контекста: глобальный и локальный.
Глобальный контекст подразумевает, что переменная является В отличие от глобальных переменных локальная переменная
глобальной, она определена вне любой из функций и доступна определяется внутри функции и доступна только из этой
любой функции в программе функции, то есть имеет локальную область видимости
Здесь переменная name является глобальной и имеет глобальную область В данном случае в каждой из двух функций определяется локальная
видимости. И обе определенные здесь функции могут свободно ее переменная name. И хотя эти переменные называются одинаково, но
использовать. тем не менее это две разных переменных, каждая из которых доступна
только в рамках своей функции.
Область видимости переменных
Скрытие переменных Если же мы хотим изменить в локальной функции глобальную
переменную, а не определить локальную, то необходимо
Есть еще один вариант определения использовать ключевое слово global
переменной, когда локальная переменная
скрывают глобальную с тем же именем
Простой map, принимающий список имён и Этот map возводит в квадрат каждый элемент
возвращающий список длин
Элементы функционального программирования в
Python
Map
В то время как map() пропускает каждый элемент Ниже приведен список (iterable) баллов 10 студентов на
итерируемого через функцию и возвращает экзамене по химии. Давайте отфильтруем тех, кто сдал с
результат всех элементов, прошедших через баллом выше 75 ... используя filter.
функцию, filter() прежде всего, требует, чтобы
функция возвращала логические значения (true или
false), а затем передает каждый элемент
итерируемого через функцию, «отфильтровывая» те,
которые являются ложными.
Давайте отфильтруем слова, являющиеся палиндромами, из
набора (iterable) подозреваемых слов палиндромов.
Элементы функционального программирования в
Python
Reduce
ChainMap()
ChainMap будет принимать
любое количество сопоставлений
или словарей и превращать их в
единое обновляемое
представление.