From e327a534c92317e4450d90e1f027063453e74e3e Mon Sep 17 00:00:00 2001 From: Danil Date: Fri, 5 Dec 2025 10:54:20 +0300 Subject: [PATCH] =?UTF-8?q?report:=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TEMA7/protocol.md | 44 ++++++++++++++++++++++++++++++-------------- 1 file changed, 30 insertions(+), 14 deletions(-) diff --git a/TEMA7/protocol.md b/TEMA7/protocol.md index f786d13..3a40aff 100644 --- a/TEMA7/protocol.md +++ b/TEMA7/protocol.md @@ -10,6 +10,9 @@ os.chdir("C:\\Users\\Dannyan\\OneDrive\\Рабочий стол\\python-labs\\TE ### 2.1 Изучение создания функции без аргументов +Пользовательская функция – это совокупность инструкций, которая выполняется при обращении к функции из любого места программы. Аргументы функции – это ссылки на объекты-источники данных, которые используются при её выполнении. + +В общем виде функция в языке Python представляется так: def <Имя функции>([<Список аргументов >]): [<отступы>"""<Комментарий по назначению функции>"""] <отступы><Блок инструкций – тело функции> [<отступы>return <Значение или вычисляемое выражение>] ``` def uspeh(): @@ -25,6 +28,8 @@ dir() >> ['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'os', 'uspeh'] ``` Просмотрена помощь по функции, созданной ранее + +Выведенная информация позволяет кратко и понятно описывать назначение функции ``` help(uspeh) Help on function uspeh in module __main__: @@ -32,8 +37,6 @@ Help on function uspeh in module __main__: uspeh() Подтверждение успеха операции ``` -Можно сделать вывод, что в описании к функции нужно описать то,что делает функция и какие аргументы нужно указывать. - ### 2.2 Пример функции с двумя аргументами @@ -52,8 +55,10 @@ n,m=16,5;sravnenie(n,m) >> 16 больше 5 n,m="16","5";sravnenie(n,m) >> 16 меньше 5 +n,m = 'aa','bb' ; sravnenie(n,m) +>> aa меньше bb ``` - +Сравнение строк происходит по алфавиту, имеет значение регистр указанных символов. ### 2.3 Пример функции, содержащей return @@ -124,7 +129,7 @@ TypeError: unsupported operand type(s) for +: 'set' and 'set' ``` -## 2.5 Изучение создания функции, которая создает список значений вычисленных сигналов +## 2.5 Создание функции, реализующей модель некоторого устройства. ``` @@ -158,8 +163,9 @@ pylab.show() ### 3.1 Получение списка атрибутов объекта-функции -Выведены атрибуты созданной функции и применен один из них,содержащий описание функции +Выведены атрибуты созданной функции +Произведено обращение к одному из атрибутов функции ``` dir(inerz) >> ['__annotations__', '__builtins__', '__call__', '__class__', '__closure__', '__code__', '__defaults__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__get__', '__getattribute__', '__getstate__', '__globals__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__kwdefaults__', '__le__', '__lt__', '__module__', '__name__', '__ne__', '__new__', '__qualname__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__type_params__'] @@ -189,7 +195,7 @@ fnkt(v,23) ### 3.3 Изучение возможности альтернативного определения функции в программе. -Был создан цикл-условие, в котором в зависимости от выполнения того иили иного условия функция будет отличаться по функционалу. +Был создан цикл-условие, в котором в зависимости от выполнения того иили иного условия функция будет отличаться по функционалу.В данном случае программа вывоит сообщение "Функция 2",так как исходная переменная не равна 1 и выполняется условие else ``` typ_fun=8 @@ -220,6 +226,7 @@ zz=fun_arg(logistfun,-3,1,0.7) zz >> -2.3318122278318336 ``` +Python передаёт ссылку на объект функции logistfun в переменную fff. Внутри функции выполняется заданная операция. ### 4.2 Обязательные и необязательные аргументы @@ -261,6 +268,8 @@ qqq >> 10 ``` В результате функция выделила в качестве аргументов значения из словаря. + +Если поставить только одну звездочку, python попытается интерпретировать ключи, а не значения словаря как позиционные аргументы. ### 4.6 Изучение cмешанных ссылок @@ -273,7 +282,11 @@ qqqq ``` ### 4.7 Переменное число аргументов у функции +*args и **kwargs + +Данная форма записи позволяе передать в функцию заранее неуточненное число аргументов. *args передает переменное число позиционных аргументов в виде кортежа. *kwargs передает переменное количество именнованных аргументов в виде словаря +*args всегда должно идти перед **kwargs. ``` def func4(*kort7): """Произвольное число аргументов в составе кортежа""" @@ -305,10 +318,14 @@ func4(-1,2,0,3,6) ``` Произведем аналогичное для словаря: ``` -def func5(**slovar): - print(slovar) -func5(a=5, n=8, m=30) ->> {'a': 5, 'n': 8, 'm': 30} +def func4(a,b=7,**dic1): #Аргументы: a-позиционный, b- по умолчанию + кортеж + """Словарь - сборка аргументов - должен быть последним!""" + smm=0 + smm = sum(dic1.values()) + return a*smm+b + +func4(1,2,x=2,y=4,t=2) +10 ``` ### 4.9 Изменение значений объектов, используемых в качестве аргументов функции @@ -339,8 +356,7 @@ TypeError: 'tuple' object does not support item assignment ``` ## 5 Специальные типы пользовательских функций - -Были изучены и созданы анонимные функции и функции-генераторы. +. ### 5.1 Анонимные функции. Анонимные функции или по-другому их называют лямбда-функциями – это функции без имени (поэтому их и называют анонимными) @@ -357,7 +373,7 @@ anfun3=lambda a,b=234: a+math.log10(b) #Функция с необязатель anfun3(100) >> 102.36921585741014 ``` - +Внутри анонимных функций не могут использоваться многострочные выражения. ### 5.2 Функции-генераторы Это – такие функции, которые используются в итерационных процессах, позволяя на каждой итерации получать одно из значений @@ -388,7 +404,7 @@ Traceback (most recent call last): print(alp.__next__()) StopIteration ``` - +После прохождения всех значений функция-генератор "опустошается" и больше не производит элементов ## 6 Локализация объектов в функциях По отношению к функции все объекты подразделяются на локальные и глобальные. Локальными являются объекты, которые создаются в функциях присваиванием им некоторых значений. Они записываются в пространство имен, создаваемое в функции.  Глобальные – это те объекты, значения которых заданы вне функции