@ -59,11 +59,12 @@ help вывело справку по функции uspeh в модуле main.
16 больше 5
16 больше 5
```
```
Так как мы не указали какой тип данных должна принимать функция, то функция сможет работать с любыми данными, которые можно сравнить. Если нельзя сравнить, вернется TypeError.
Функция работает с любыми данными, которые можно сравнить. Если нельзя сравнить, вернется TypeError.
```py
```py
>>> n,m='aaa', 'bbbb';sravnenie(n,m)
>>> n,m='aaa', 'bbbb';sravnenie(n,m)
aaa меньше bbbb
aaa меньше bbbb
```
```
Сравнение строк происходит по алфавиту, так же значение имеет регистр букв (заглавные меньше строчных), более короткая строка считается меньшей ("abc" < "abcd"), но "hi">"hello"
## 2.3 Функция, содержащая return
## 2.3 Функция, содержащая return
@ -208,6 +209,13 @@ inerz(x, T, ypred)
Программа выводит сообщение "Функция 2", потому что переменная typ_fun не равна 1, и
Программа выводит сообщение "Функция 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. Аргументы функции
# 4. Аргументы функции
## 4.1 Возможность использования функции в качестве аргумента другой функции
## 4.1 Возможность использования функции в качестве аргумента другой функции
Здесь при каждом обращении к функции будет генерироваться только одно очередное значение.
Здесь при каждом обращении к функции будет генерироваться только одно очередное значение.
При программировании задач у таких функций часто используют метод __next__, активирующий очередную итерацию выполнения функции.
При программировании задач у таких функций часто используют метод __next__, активирующий очередную итерацию выполнения функции.
```py
```py
@ -435,6 +444,8 @@ StopIteration
__next__ помогает вывести значение, которое yield передает на каждой итерации цикла. Если функция отработала последнюю итерацию, но мы попытаемся сделать вызов, вернется ошибка.
__next__ помогает вывести значение, которое yield передает на каждой итерации цикла. Если функция отработала последнюю итерацию, но мы попытаемся сделать вызов, вернется ошибка.
В отличии от функций, которые возвращают список со значениями итераций, функции - генераторы генерируют значения по одному, не храня всё в памяти; а функция, возвращающая список создаёт весь список в памяти. Также генератор можно использовать только один раз - после прохождения всех значений он "опустошается" и больше не производит элементов.
# 6. Локализация объектов в функциях
# 6. Локализация объектов в функциях
По отношению к функции все объекты подразделяются на локальные и глобальные. Локальными являются объекты, которые создаются в функциях присваиванием им некоторых значений. Глобальные – это те объекты, значения которых заданы вне функции.
По отношению к функции все объекты подразделяются на локальные и глобальные. Локальными являются объекты, которые создаются в функциях присваиванием им некоторых значений. Глобальные – это те объекты, значения которых заданы вне функции.