diff --git a/TEMA7/report.md b/TEMA7/report.md index a0fc854..4a4caeb 100644 --- a/TEMA7/report.md +++ b/TEMA7/report.md @@ -59,11 +59,12 @@ help вывело справку по функции uspeh в модуле main. 16 больше 5 ``` -Так как мы не указали какой тип данных должна принимать функция, то функция сможет работать с любыми данными, которые можно сравнить. Если нельзя сравнить, вернется TypeError. +Функция работает с любыми данными, которые можно сравнить. Если нельзя сравнить, вернется TypeError. ```py >>> n,m='aaa', 'bbbb';sravnenie(n,m) aaa меньше bbbb ``` +Сравнение строк происходит по алфавиту, так же значение имеет регистр букв (заглавные меньше строчных), более короткая строка считается меньшей ("abc" < "abcd"), но "hi">"hello" ## 2.3 Функция, содержащая return @@ -206,7 +207,14 @@ inerz(x, T, ypred) ``` Программа выводит сообщение "Функция 2", потому что переменная typ_fun не равна 1, и -выполняется блок else, в котором функция func определена как выводящая "Функция 2". +выполняется блок else, в котором функция func определена как выводящая "Функция 2". + +```py +>>> tup_fun=1 +>>> func() +Функция 2 +``` +Сначала у нас выполнялась ветка else, создаётся функция func и вывелось "Функция 2". Эта функция сохранилась в памяти. Потом мы изменили значение typ_fun. Но здесь уже код с if-else не выполняется, функция func остаёся прежней. # 4. Аргументы функции @@ -415,6 +423,7 @@ lambda [<Аргумент1>[,<Аргумент2>,…]]:<Возвращаемое 7 ``` + Здесь при каждом обращении к функции будет генерироваться только одно очередное значение. При программировании задач у таких функций часто используют метод __next__, активирующий очередную итерацию выполнения функции. ```py @@ -435,6 +444,8 @@ StopIteration __next__ помогает вывести значение, которое yield передает на каждой итерации цикла. Если функция отработала последнюю итерацию, но мы попытаемся сделать вызов, вернется ошибка. +В отличии от функций, которые возвращают список со значениями итераций, функции - генераторы генерируют значения по одному, не храня всё в памяти; а функция, возвращающая список создаёт весь список в памяти. Также генератор можно использовать только один раз - после прохождения всех значений он "опустошается" и больше не производит элементов. + # 6. Локализация объектов в функциях По отношению к функции все объекты подразделяются на локальные и глобальные. Локальными являются объекты, которые создаются в функциях присваиванием им некоторых значений. Глобальные – это те объекты, значения которых заданы вне функции.