Danil 7 дней назад
Родитель 461a5dcb30
Сommit e327a534c9

@ -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 Локализация объектов в функциях
По отношению к функции все объекты подразделяются на локальные и глобальные. Локальными являются объекты, которые создаются в функциях присваиванием им некоторых значений. Они записываются в пространство имен, создаваемое в функции.  Глобальные – это те объекты, значения которых заданы вне функции

Загрузка…
Отмена
Сохранить