Пользовательская функция – это совокупность инструкций, которая выполняется при обращении к функции из любого места программы. Аргументы функции – это ссылки на объекты-источники данных, которые используются при её выполнении.
В общем виде функция в языке Python представляется так: def <Имя функции>([<Список аргументов >]): [<отступы>"""<Комментарий по назначению функции>"""] <отступы><Блок инструкций – тело функции> [<отступы>return <Значение или вычисляемое выражение>]
### 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 Функции-генераторы
Это – такие функции, которые используются в итерационных процессах, позволяя на каждой итерации получать одно из значений
Это – такие функции, которые используются в итерационных процессах, позволяя на каждой итерации получать одно из значений
После прохождения всех значений функция-генератор "опустошается" и больше не производит элементов
## 6 Локализация объектов в функциях
## 6 Локализация объектов в функциях
По отношению к функции все объекты подразделяются на локальные и глобальные. Локальными являются объекты, которые создаются в функциях присваиванием им некоторых значений. Они записываются в пространство имен, создаваемое в функции. Глобальные – это те объекты, значения которых заданы вне функции
По отношению к функции все объекты подразделяются на локальные и глобальные. Локальными являются объекты, которые создаются в функциях присваиванием им некоторых значений. Они записываются в пространство имен, создаваемое в функции. Глобальные – это те объекты, значения которых заданы вне функции