Вчера захотел пройти всю главу функции. Но посмотрел количество тем и какие они - решил разбить. Оставил на сегодня более сложные темы. Помню раньше с ними были проблемы в понимании, так что лучше не спешить. Я про области видимости, замыкания и декораторы. Думаю пару раз точно материал просмотрю. Ну а ниже опишу что успел прошлым днем.
Сделанное за вчера:
🔘) Чуть больше 2 видеолекций (129 минут, если быть точнее), все еще не лень считать)😄И плюс это же не Докер😂
🔘) Решены все, кроме одной, задачи по этим темам.
🔘) Пройдена глава про функии, частично:
1) Функции: Темы: Что такое функции, объявление и вызов; оператор return, алгоритм Евклида, параметры и аргументы функций, произвольное кол-во параметров в функции (*args, kwargs), операторы *, ** для распаковки коллекций, рекурсивные функции, анонимные (lambda) функции.
Кто захочет более подробно - почитает тут (первые 8 тем слева)
Основные моменты из этого материала:
1) def funс(): pass. func - это лишь ссылка на функцию, а чтобы ее вызвать необходимо после имени добавить (). В ООП потом пригодится.
2) функция всегда что-то возвращает оператором return, по умолчанию это None. Поэтому некоторые методы меняют переменную на месте, а некоторые возвращают новый объект. (методы списков vs методы строк)
3) необходимо отличать параметры функции от аргументов функций. Параметры - это то что передается в функцию, когда мы ее создаем, а аргументы - то, когда вызываем. Т.е. получается, что аргументы функции ссылаются на параметры, заданные при ее объявлении(так, мысли вслух)
4) переменные объявленные в теле функции доступны только в ней (P.S. в самом простом случае, без доп. данных)
5) обязательные(фактические) и необязательные(параметры по умолчанию/формальные). По разному называются, но смысл один. Сначала записываются первые, потом вторые.
6) *args - обязательных параметров, **kwargs - словарь параметров по умолчанию. Так принято называть, если мы создаем функцию и заранее не известно сколько там будет параметров или аргументов при ее вызове.
7) lambda - функция. Функция в одну строчку, без оператора return. Простой формат применения. lambda x, y: x + y. Где слева от двоеточия параметры, которые она принимает, а справа, что возвращает.
8) рекурсивная функция - это та, которая вызывает саму себя, либо в теле функции, либо в операторе return. Но не забывайте условие для выхода в этом случае.
Итоги дня и выводы:
На самом деле это одна из важных тем и лучше ее понимать хорошо. Функции Абсолютно везде используются в программировании. Например, я помню как несколько лет назад мне дали небольшое тестовое и я там нагородил штук 300 кода)А по итогу можно было и за 50, если не меньше, управится. Естественно я дальше не прошёл, но тогда я удивлялся почему же так произошло😂😂😂Благо мне хоть дали обратную связь и сказали про функциональный подход в программировании. Don't Repeat Yourself.
Post #147
278