ответвлено от main/python-labs
Tema7/report.md
Этот коммит содержится в:
@@ -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
|
||||||
@@ -206,7 +207,14 @@ 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. Аргументы функции
|
||||||
@@ -415,6 +423,7 @@ lambda [<Аргумент1>[,<Аргумент2>,…]]:<Возвращаемое
|
|||||||
7
|
7
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
Здесь при каждом обращении к функции будет генерироваться только одно очередное значение.
|
Здесь при каждом обращении к функции будет генерироваться только одно очередное значение.
|
||||||
При программировании задач у таких функций часто используют метод __next__, активирующий очередную итерацию выполнения функции.
|
При программировании задач у таких функций часто используют метод __next__, активирующий очередную итерацию выполнения функции.
|
||||||
```py
|
```py
|
||||||
@@ -435,6 +444,8 @@ StopIteration
|
|||||||
|
|
||||||
__next__ помогает вывести значение, которое yield передает на каждой итерации цикла. Если функция отработала последнюю итерацию, но мы попытаемся сделать вызов, вернется ошибка.
|
__next__ помогает вывести значение, которое yield передает на каждой итерации цикла. Если функция отработала последнюю итерацию, но мы попытаемся сделать вызов, вернется ошибка.
|
||||||
|
|
||||||
|
В отличии от функций, которые возвращают список со значениями итераций, функции - генераторы генерируют значения по одному, не храня всё в памяти; а функция, возвращающая список создаёт весь список в памяти. Также генератор можно использовать только один раз - после прохождения всех значений он "опустошается" и больше не производит элементов.
|
||||||
|
|
||||||
|
|
||||||
# 6. Локализация объектов в функциях
|
# 6. Локализация объектов в функциях
|
||||||
По отношению к функции все объекты подразделяются на локальные и глобальные. Локальными являются объекты, которые создаются в функциях присваиванием им некоторых значений. Глобальные – это те объекты, значения которых заданы вне функции.
|
По отношению к функции все объекты подразделяются на локальные и глобальные. Локальными являются объекты, которые создаются в функциях присваиванием им некоторых значений. Глобальные – это те объекты, значения которых заданы вне функции.
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user