ответвлено от main/python-labs
report:добавлен
Этот коммит содержится в:
@@ -10,6 +10,9 @@ os.chdir("C:\\Users\\Dannyan\\OneDrive\\Рабочий стол\\python-labs\\TE
|
|||||||
|
|
||||||
### 2.1 Изучение создания функции без аргументов
|
### 2.1 Изучение создания функции без аргументов
|
||||||
|
|
||||||
|
Пользовательская функция – это совокупность инструкций, которая выполняется при обращении к функции из любого места программы. Аргументы функции – это ссылки на объекты-источники данных, которые используются при её выполнении.
|
||||||
|
|
||||||
|
В общем виде функция в языке Python представляется так: def <Имя функции>([<Список аргументов >]): [<отступы>"""<Комментарий по назначению функции>"""] <отступы><Блок инструкций – тело функции> [<отступы>return <Значение или вычисляемое выражение>]
|
||||||
|
|
||||||
```
|
```
|
||||||
def uspeh():
|
def uspeh():
|
||||||
@@ -25,6 +28,8 @@ dir()
|
|||||||
>> ['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'os', 'uspeh']
|
>> ['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'os', 'uspeh']
|
||||||
```
|
```
|
||||||
Просмотрена помощь по функции, созданной ранее
|
Просмотрена помощь по функции, созданной ранее
|
||||||
|
|
||||||
|
Выведенная информация позволяет кратко и понятно описывать назначение функции
|
||||||
```
|
```
|
||||||
help(uspeh)
|
help(uspeh)
|
||||||
Help on function uspeh in module __main__:
|
Help on function uspeh in module __main__:
|
||||||
@@ -32,8 +37,6 @@ Help on function uspeh in module __main__:
|
|||||||
uspeh()
|
uspeh()
|
||||||
Подтверждение успеха операции
|
Подтверждение успеха операции
|
||||||
```
|
```
|
||||||
Можно сделать вывод, что в описании к функции нужно описать то,что делает функция и какие аргументы нужно указывать.
|
|
||||||
|
|
||||||
### 2.2 Пример функции с двумя аргументами
|
### 2.2 Пример функции с двумя аргументами
|
||||||
|
|
||||||
|
|
||||||
@@ -52,8 +55,10 @@ n,m=16,5;sravnenie(n,m)
|
|||||||
>> 16 больше 5
|
>> 16 больше 5
|
||||||
n,m="16","5";sravnenie(n,m)
|
n,m="16","5";sravnenie(n,m)
|
||||||
>> 16 меньше 5
|
>> 16 меньше 5
|
||||||
|
n,m = 'aa','bb' ; sravnenie(n,m)
|
||||||
|
>> aa меньше bb
|
||||||
```
|
```
|
||||||
|
Сравнение строк происходит по алфавиту, имеет значение регистр указанных символов.
|
||||||
### 2.3 Пример функции, содержащей return
|
### 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 Получение списка атрибутов объекта-функции
|
### 3.1 Получение списка атрибутов объекта-функции
|
||||||
|
|
||||||
Выведены атрибуты созданной функции и применен один из них,содержащий описание функции
|
Выведены атрибуты созданной функции
|
||||||
|
|
||||||
|
Произведено обращение к одному из атрибутов функции
|
||||||
```
|
```
|
||||||
dir(inerz)
|
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__']
|
>> ['__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 Изучение возможности альтернативного определения функции в программе.
|
### 3.3 Изучение возможности альтернативного определения функции в программе.
|
||||||
|
|
||||||
Был создан цикл-условие, в котором в зависимости от выполнения того иили иного условия функция будет отличаться по функционалу.
|
Был создан цикл-условие, в котором в зависимости от выполнения того иили иного условия функция будет отличаться по функционалу.В данном случае программа вывоит сообщение "Функция 2",так как исходная переменная не равна 1 и выполняется условие else
|
||||||
|
|
||||||
```
|
```
|
||||||
typ_fun=8
|
typ_fun=8
|
||||||
@@ -220,6 +226,7 @@ zz=fun_arg(logistfun,-3,1,0.7)
|
|||||||
zz
|
zz
|
||||||
>> -2.3318122278318336
|
>> -2.3318122278318336
|
||||||
```
|
```
|
||||||
|
Python передаёт ссылку на объект функции logistfun в переменную fff. Внутри функции выполняется заданная операция.
|
||||||
|
|
||||||
### 4.2 Обязательные и необязательные аргументы
|
### 4.2 Обязательные и необязательные аргументы
|
||||||
|
|
||||||
@@ -261,6 +268,8 @@ qqq
|
|||||||
>> 10
|
>> 10
|
||||||
```
|
```
|
||||||
В результате функция выделила в качестве аргументов значения из словаря.
|
В результате функция выделила в качестве аргументов значения из словаря.
|
||||||
|
|
||||||
|
Если поставить только одну звездочку, python попытается интерпретировать ключи, а не значения словаря как позиционные аргументы.
|
||||||
### 4.6 Изучение cмешанных ссылок
|
### 4.6 Изучение cмешанных ссылок
|
||||||
|
|
||||||
|
|
||||||
@@ -273,7 +282,11 @@ qqqq
|
|||||||
```
|
```
|
||||||
|
|
||||||
### 4.7 Переменное число аргументов у функции
|
### 4.7 Переменное число аргументов у функции
|
||||||
|
*args и **kwargs
|
||||||
|
|
||||||
|
Данная форма записи позволяе передать в функцию заранее неуточненное число аргументов. *args передает переменное число позиционных аргументов в виде кортежа. *kwargs передает переменное количество именнованных аргументов в виде словаря
|
||||||
|
|
||||||
|
*args всегда должно идти перед **kwargs.
|
||||||
```
|
```
|
||||||
def func4(*kort7):
|
def func4(*kort7):
|
||||||
"""Произвольное число аргументов в составе кортежа"""
|
"""Произвольное число аргументов в составе кортежа"""
|
||||||
@@ -305,10 +318,14 @@ func4(-1,2,0,3,6)
|
|||||||
```
|
```
|
||||||
Произведем аналогичное для словаря:
|
Произведем аналогичное для словаря:
|
||||||
```
|
```
|
||||||
def func5(**slovar):
|
def func4(a,b=7,**dic1): #Аргументы: a-позиционный, b- по умолчанию + кортеж
|
||||||
print(slovar)
|
"""Словарь - сборка аргументов - должен быть последним!"""
|
||||||
func5(a=5, n=8, m=30)
|
smm=0
|
||||||
>> {'a': 5, 'n': 8, 'm': 30}
|
smm = sum(dic1.values())
|
||||||
|
return a*smm+b
|
||||||
|
|
||||||
|
func4(1,2,x=2,y=4,t=2)
|
||||||
|
10
|
||||||
```
|
```
|
||||||
|
|
||||||
### 4.9 Изменение значений объектов, используемых в качестве аргументов функции
|
### 4.9 Изменение значений объектов, используемых в качестве аргументов функции
|
||||||
@@ -339,8 +356,7 @@ TypeError: 'tuple' object does not support item assignment
|
|||||||
```
|
```
|
||||||
|
|
||||||
## 5 Специальные типы пользовательских функций
|
## 5 Специальные типы пользовательских функций
|
||||||
|
.
|
||||||
Были изучены и созданы анонимные функции и функции-генераторы.
|
|
||||||
|
|
||||||
### 5.1 Анонимные функции.
|
### 5.1 Анонимные функции.
|
||||||
Анонимные функции или по-другому их называют лямбда-функциями – это функции без имени (поэтому их и называют анонимными)
|
Анонимные функции или по-другому их называют лямбда-функциями – это функции без имени (поэтому их и называют анонимными)
|
||||||
@@ -357,7 +373,7 @@ anfun3=lambda a,b=234: a+math.log10(b) #Функция с необязатель
|
|||||||
anfun3(100)
|
anfun3(100)
|
||||||
>> 102.36921585741014
|
>> 102.36921585741014
|
||||||
```
|
```
|
||||||
|
Внутри анонимных функций не могут использоваться многострочные выражения.
|
||||||
### 5.2 Функции-генераторы
|
### 5.2 Функции-генераторы
|
||||||
Это – такие функции, которые используются в итерационных процессах, позволяя на каждой итерации получать одно из значений
|
Это – такие функции, которые используются в итерационных процессах, позволяя на каждой итерации получать одно из значений
|
||||||
|
|
||||||
@@ -388,7 +404,7 @@ Traceback (most recent call last):
|
|||||||
print(alp.__next__())
|
print(alp.__next__())
|
||||||
StopIteration
|
StopIteration
|
||||||
```
|
```
|
||||||
|
После прохождения всех значений функция-генератор "опустошается" и больше не производит элементов
|
||||||
## 6 Локализация объектов в функциях
|
## 6 Локализация объектов в функциях
|
||||||
По отношению к функции все объекты подразделяются на локальные и глобальные. Локальными являются объекты, которые создаются в функциях присваиванием им некоторых значений. Они записываются в пространство имен, создаваемое в функции. Глобальные – это те объекты, значения которых заданы вне функции
|
По отношению к функции все объекты подразделяются на локальные и глобальные. Локальными являются объекты, которые создаются в функциях присваиванием им некоторых значений. Они записываются в пространство имен, создаваемое в функции. Глобальные – это те объекты, значения которых заданы вне функции
|
||||||
|
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user