Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
develop:pyton:date [2022/02/19 16:52] admin [Время выполнения фрагментов кода] |
develop:pyton:date [2022/02/20 10:32] (текущий) admin |
||
---|---|---|---|
Строка 93: | Строка 93: | ||
=== timedelta === | === timedelta === | ||
- | Конструктор- timedelta(< | + | Конструктор- timedelta(< |
Можно присваивать в порядке следования, | Можно присваивать в порядке следования, | ||
Поддерживаются арифметические операции, | Поддерживаются арифметические операции, | ||
Строка 121: | Строка 121: | ||
=== time === | === time === | ||
- | Операции над временем. time(< | + | Операции над временем. time(< |
**Арифметические действия не поддерживаются**, | **Арифметические действия не поддерживаются**, | ||
Строка 127: | Строка 127: | ||
=== datetime === | === datetime === | ||
В целом аналогично предыдущим, | В целом аналогично предыдущим, | ||
- | * **today()**, | + | * **today()**, |
* **utcnow()** - текущее время UTC | * **utcnow()** - текущее время UTC | ||
* **[utc]fromtimestamp(< | * **[utc]fromtimestamp(< | ||
Строка 141: | Строка 141: | ||
<code python> | <code python> | ||
- | </ | ||
import calendar | import calendar | ||
Строка 149: | Строка 148: | ||
c= calendar.TextCalendar(0) | c= calendar.TextCalendar(0) | ||
print(c.formatyear(2017)) | print(c.formatyear(2017)) | ||
- | <code python> | ||
</ | </ | ||
=== Другие функции === | === Другие функции === | ||
- | * **weekheader()** - | + | * **weekheader()** - строка- аббревиатур дней недели |
- | * **isleap()** - | + | * **isleap()** - проверка года високосный |
- | * **weekday()** - | + | * **weekday()** - номер дня недели указанной даты |
Атрибуты: | Атрибуты: | ||
Строка 177: | Строка 175: | ||
===== Пользовательские функции ===== | ===== Пользовательские функции ===== | ||
+ | Оператор **pass** можно использовать как загрузку для пустой функции\\ | ||
==== Определение и вызов ==== | ==== Определение и вызов ==== | ||
- | + | Функция сама является объектом, | |
- | + | Поддерживает стандартные атрибуты, | |
- | <code python> | + | |
- | </ | + | |
- | + | ||
- | <code python> | + | |
- | </ | + | |
==== Расположение определения ==== | ==== Расположение определения ==== | ||
- | + | Определение должно быть перед вызовом, | |
- | + | ||
- | <code python> | + | |
- | </ | + | |
- | + | ||
- | <code python> | + | |
- | </ | + | |
==== Необязательные параметры ==== | ==== Необязательные параметры ==== | ||
+ | Необязательность имеется ввиду значение по умолчанию, | ||
+ | Все **аргументы передаются по ссылке** поэтому изменяемые типы данных **могут изменить исходную переменную**, | ||
- | + | :!: Что касается предопределенных переменных - они **похоже статические** и **могут накапливать значение** при повторных вызовах, | |
- | <code python> | + | |
- | </ | + | |
- | + | ||
- | <code python> | + | |
- | </ | + | |
==== Переменное число параметров ==== | ==== Переменное число параметров ==== | ||
+ | Если перед переменной указать звездочку, | ||
+ | Если две звездочки, | ||
+ | Если указать первое затем второе, | ||
+ | Если функция не должна принимать переменного кол-ва параметров, | ||
<code python> | <code python> | ||
- | </ | + | # Произвольное кол-во параметров |
+ | def func(*t): | ||
+ | for i in t: | ||
+ | ... | ||
- | <code python> | + | # Ф-я примет любые параметры |
+ | def func(*x, **y): | ||
+ | ... | ||
+ | |||
+ | # Аргументы только по именам | ||
+ | def func(x=1, y=2, *, a): | ||
+ | ... | ||
</ | </ | ||
==== Анонимные функции ==== | ==== Анонимные функции ==== | ||
- | + | т.н. **лямбда функция**, | |
<code python> | <code python> | ||
- | </ | + | f1= lambda: 10 + 20 |
+ | f2= lambda x, y: x + y # аргументы | ||
- | <code python> | + | print(f1()) |
+ | print(f2(10, | ||
</ | </ | ||
==== Функции-генераторы ==== | ==== Функции-генераторы ==== | ||
+ | При последовательных вызовах, | ||
+ | Использование этого оператора собсна и делает обычную функцию функцией-генератором\\ | ||
+ | Удобно при обработке действительно большой последовательности, | ||
+ | Эти функции поддерживают метод **__next()__**, | ||
+ | Можно вкладывать генераторы\\ | ||
<code python> | <code python> | ||
- | </ | + | def func(x, y): |
+ | for i in range(1, x+ 1): | ||
+ | yield i ** y | ||
- | <code python> | + | i= func(3, 3) |
+ | print(i.__next__()) # Выведет: | ||
+ | print(i.__next__()) # Выведет: | ||
+ | print(i.__next__()) # Выведет: | ||
+ | print(i.__next__()) # Исключение StopIteration | ||
</ | </ | ||
==== Декораторы функции ==== | ==== Декораторы функции ==== | ||
+ | Обычные функции, | ||
+ | В аргументе декора передается ссылка на целевую функцию, | ||
<code python> | <code python> | ||
- | </ | + | def deco(f): |
+ | ... | ||
+ | return f # ссылка на целевую ф-ю | ||
- | <code python> | + | @deco |
+ | def func(x): | ||
+ | ... | ||
+ | |||
+ | print (func(10)) | ||
</ | </ | ||
==== Рекурсия ==== | ==== Рекурсия ==== | ||
- | + | Все как обычно, | |
- | + | ||
- | <code python> | + | |
- | </ | + | |
- | + | ||
- | <code python> | + | |
- | </ | + | |
==== Глобальные и локальные переменные ==== | ==== Глобальные и локальные переменные ==== | ||
- | + | Глобальные переменные те что определены за пределами любой функции, | |
- | + | Для обращение к ней из функции, | |
- | <code python> | + | |
- | </ | + | |
- | + | ||
- | <code python> | + | |
- | </ | + | |
==== Вложенные функции ==== | ==== Вложенные функции ==== | ||
- | + | Внутри вложенной функции **доступна область видимости** родительской функции\\ | |
- | + | Доступны но изменить во вложенной так просто нельзя видимо, | |
- | <code python> | + | Не забываем что переменные передаются ссылками\\ |
- | </ | + | |
- | + | ||
- | <code python> | + | |
- | </ | + | |
==== Аннотации функций ==== | ==== Аннотации функций ==== | ||
- | + | Документирование аргументов функций\\ | |
<code python> | <code python> | ||
+ | # Описание после двоеточия, | ||
+ | def func(a: " | ||
</ | </ | ||
- | |||
- | <code python> | ||
- | </ | ||
- | |||
- | <code python> | ||
- | </ | ||
- | |||
- | |||