Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
develop:pyton:date [2022/02/19 14:48] admin |
develop:pyton:date [2022/02/20 10:32] (текущий) admin |
||
---|---|---|---|
Строка 13: | Строка 13: | ||
Модуль **time** | Модуль **time** | ||
* **time()**- вещественное число, кол-во секунд с начала эпохи (01.01.1970) | * **time()**- вещественное число, кол-во секунд с начала эпохи (01.01.1970) | ||
- | * **gmtime(< | + | * **gmtime(< |
- | * **localtime(< | + | * **localtime(< |
* **mktime(< | * **mktime(< | ||
Строка 39: | Строка 39: | ||
==== Форматирование даты/ | ==== Форматирование даты/ | ||
- | * **strftime(< | + | * **strftime(< |
- | * **strptime(< | + | * **strptime(< |
- | * **asctime(< | + | * **asctime(< |
- | * **ctime(< | + | * **ctime(< |
- | * **** - | + | |
- | * **** - | + | |
- | * **** - | + | |
- | + | <details> | |
- | <code python> | + | < |
- | </code> | + | * %a Сокращенное название дня недели Вс, Пн |
- | + | * %A Полное название дня недели воскресенье, | |
- | <code python> | + | * %w День недели в виде десятичного числа 0…6 |
- | </code> | + | * %d День месяца в виде десятичной дроби с нулями 01, 02 |
+ | * %-d день месяца в виде десятичного числа 1, 2.. | ||
+ | * %b Сокращенное название месяца Jan, Feb | ||
+ | * %m месяц как десятичное число, дополненное нулями 01, 02 | ||
+ | * %-м месяц в виде десятичного числа 1, 2 | ||
+ | * %B Полное название месяца Январь, | ||
+ | * %y год без века в виде десятичного числа, дополненного нулями 99, 00 | ||
+ | * %-й год без века в виде десятичного числа 0, 99 | ||
+ | * %Y год с веком в виде десятичного числа 2000, 1999 | ||
+ | * %H час (24-часовой формат) как десятичное число с нулями 01, 23 | ||
+ | * %-H час (24-часовой формат) в виде десятичного числа 1, 23 | ||
+ | * %I час (12-часовой формат) в виде десятичного числа с нулевым заполнением 01, 12 | ||
+ | * %-I час(12 часов) как десятичное число 1, 12 | ||
+ | * %p языковой стандарт AM или PM AM, PM | ||
+ | * %M Минуты в виде десятичного числа, дополненного нулями 01, 59 | ||
+ | * %-M Минуты в виде десятичного числа 1, 59 | ||
+ | * %S Second как десятичное число, дополненное нулями 01, 59 | ||
+ | * %-S Секунда как десятичное число 1, 59 | ||
+ | * %f микросекунды в виде десятичного числа, дополненного нулями слева 000000, 999999 | ||
+ | * %z смещение UTC в формате +ЧЧММ или -ЧЧММ | ||
+ | * %Z Название часового пояса | ||
+ | * %j день года в виде десятичного числа, дополненного нулями 001, 365 | ||
+ | * %-j день года в виде десятичного числа 1 365 | ||
+ | * %U Номер недели в году (первым считается воскресенье) 0, 6 | ||
+ | * %W Номер недели года 00, 53 | ||
+ | * Соответствующее представление даты и времени локали %c Пн, 30 сентября, | ||
+ | * %x языковое стандартное представление даты 30.11.98 | ||
+ | * Соответствующее представление времени локали %X 10:03:43 | ||
+ | * %% Буквенный символ «%» % | ||
+ | </details> | ||
==== " | ==== " | ||
- | + | time.sleep(sec) | |
- | + | ||
- | <code python> | + | |
- | </ | + | |
- | + | ||
- | <code python> | + | |
- | </ | + | |
==== Модуль " | ==== Модуль " | ||
- | + | Модуль содержит классы: | |
- | + | * **timedelta** - дата в виде кол-ва дней, сек, микросек. Экземпляр можно складывать с **date**/ | |
- | <code python> | + | * **date, time, datetime** - дата, время, комбинация даты/время в виде объекта |
- | </code> | + | * **tzinfo** - time zone |
- | + | ||
- | <code python> | + | |
- | </ | + | |
=== timedelta === | === timedelta === | ||
- | + | Конструктор- timedelta(<days>=, <seconds>=, < | |
- | + | Можно присваивать в порядке следования, | |
- | <code python> | + | Поддерживаются арифметические операции, |
- | </code> | + | |
<code python> | <code python> | ||
+ | d1= datetime.timedelta(days= 2) | ||
+ | d2= datetime.timedelta(days= 7) | ||
+ | d1 + d2, d1 / d2 ... | ||
</ | </ | ||
=== date === | === date === | ||
+ | Операции над датами. date(< | ||
+ | Для получения есть методы: | ||
+ | * **today()** - текущая дата | ||
+ | * **fromtimestamp(< | ||
+ | * **fromordinal()** - | ||
<code python> | <code python> | ||
+ | d= datetime.date.today() | ||
+ | d.day, d.month, d.year | ||
</ | </ | ||
- | <code python> | + | Есть методы: |
- | </ | + | |
=== time === | === time === | ||
- | + | Операции над временем. time(<hour>=, <minute>=, <second>=, <microsec>=, < | |
- | + | **Арифметические действия не поддерживаются**, | |
- | <code python> | + | |
- | </code> | + | |
- | + | ||
- | <code python> | + | |
- | </code> | + | |
=== datetime === | === datetime === | ||
- | + | В целом аналогично предыдущим, | |
- | + | * **today()**, | |
- | <code python> | + | * **utcnow()** - текущее время UTC |
- | </code> | + | * **[utc]fromtimestamp(<sec>)** |
- | + | * **combine(<date>, < | |
- | <code python> | + | * **strptime(< |
- | </code> | + | |
==== Модуль calendar ==== | ==== Модуль calendar ==== | ||
+ | Содержит классы для вывода календаря в простом, | ||
+ | Базовый класс **Calendar**, | ||
+ | **TextCalendar (LocateCalendar )** в виде форматированного текста (локализованные названия)\\ | ||
+ | **HTMLCalendar, | ||
<code python> | <code python> | ||
- | </ | + | import calendar |
- | <code python> | + | c= calendar.Calendar(0) |
- | </ | + | print(c.monthdayscalendar(2017, |
- | + | c= calendar.TextCalendar(0) | |
- | === TextCalendar, LocateCalendar === | + | print(c.formatyear(2017)) |
- | + | ||
- | + | ||
- | <code python> | + | |
- | </ | + | |
- | + | ||
- | <code python> | + | |
- | </ | + | |
- | + | ||
- | + | ||
- | === HTMLCalendar, | + | |
- | + | ||
- | + | ||
- | <code python> | + | |
- | </ | + | |
- | + | ||
- | <code python> | + | |
</ | </ | ||
=== Другие функции === | === Другие функции === | ||
+ | * **weekheader()** - строка- аббревиатур дней недели | ||
+ | * **isleap()** - проверка года високосный | ||
+ | * **weekday()** - номер дня недели указанной даты | ||
- | + | Атрибуты: | |
- | <code python> | + | * **day_[name, |
- | </ | + | * **month_[name, |
- | + | ||
- | <code python> | + | |
- | </ | + | |
==== Время выполнения фрагментов кода ==== | ==== Время выполнения фрагментов кода ==== | ||
+ | Замер не конкретного куска кода а **лишь образца** кода, который передается строкой..\\ | ||
+ | from timeit import Timer\\ | ||
+ | Timer(< | ||
<code python> | <code python> | ||
+ | code1= """ | ||
+ | t1= Timer(stmt= code1) | ||
+ | >> t1.timeit() | ||
</ | </ | ||
- | |||
- | <code python> | ||
- | </ | ||
- | |||
- | |||
===== Пользовательские функции ===== | ===== Пользовательские функции ===== | ||
+ | Оператор **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> | ||
- | </ | ||
- | |||
- | |||