Работа с датами и временем
Основной функционал для работы с датами и временем сосредоточен в модуле datetime в виде следующих классов:
Класс date
Для работы с датами воспользуемся классом date , который определен в модуле datetime. Для создания объекта date мы можем использовать конструктор date, который последовательно принимает три параметра: год, месяц и день.
date(year, month, day)
Например, создадим какую-либо дату:
import datetime yesterday = datetime.date(2017,5, 2) print(yesterday) # 2017-05-02
Если необходимо получить текущую дату, то можно воспользоваться методом today() :
from datetime import date today = date.today() print(today) # 2017-05-03 print("<>.<>.<>".format(today.day, today.month, today.year)) # 2.5.2017
С помощью свойств day, month, year можно получить соответственно день, месяц и год
Класс time
За работу с временем отвечает класс time . Используя его конструктор, можно создать объект времени:
time([hour] [, min] [, sec] [, microsec])
Конструктор последовательно принимает часы, минуты, секунды и микросекунды. Все параметры необязательные, и если мы какой-то параметр не передадим, то соответствующее значение будет инициализироваться нулем.
from datetime import time current_time = time() print(current_time) # 00:00:00 current_time = time(16, 25) print(current_time) # 16:25:00 current_time = time(16, 25, 45) print(current_time) # 16:25:45
Класс datetime
Класс datetime из одноименного модуля объединяет возможности работы с датой и временем. Для создания объекта datetime можно использовать следующий конструктор:
datetime(year, month, day [, hour] [, min] [, sec] [, microsec])
Первые три параметра, представляющие год, месяц и день, являются обязательными. Остальные необязательные, и если мы не укажем для них значения, то по умолчанию они инициализируются нулем.
from datetime import datetime deadline = datetime(2017, 5, 10) print(deadline) # 2017-05-10 00:00:00 deadline = datetime(2017, 5, 10, 4, 30) print(deadline) # 2017-05-10 04:30:00
Для получения текущих даты и времени можно вызвать метод now() :
from datetime import datetime now = datetime.now() print(now) # 2017-05-03 11:18:56.239443 print("<>.<>.<> <>:<>".format(now.day, now.month, now.year, now.hour, now.minute)) # 3.5.2017 11:21 print(now.date()) print(now.time())
С помощью свойств day, month, year, hour, minute, second можно получить отдельные значения даты и времени. А через методы date() и time() можно получить отдельно дату и время соответственно.
Преобразование из строки в дату
Из функциональности класса datetime следует отметить метод strptime() , который позволяет распарсить строку и преобразовать ее в дату. Этот метод принимает два параметра:
strptime(str, format)
Первый параметр str представляет строковое определение даты и времени, а второй параметр — формат, который определяет, как различные части даты и времени расположены в этой строке.
Для определения формата мы можем использовать следующие коды:
- %d : день месяца в виде числа
- %m : порядковый номер месяца
- %y : год в виде 2-х чисел
- %Y : год в виде 4-х чисел
- %H : час в 24-х часовом формате
- %M : минута
- %S : секунда
Применим различные форматы:
from datetime import datetime deadline = datetime.strptime("22/05/2017", "%d/%m/%Y") print(deadline) # 2017-05-22 00:00:00 deadline = datetime.strptime("22/05/2017 12:30", "%d/%m/%Y %H:%M") print(deadline) # 2017-05-22 12:30:00 deadline = datetime.strptime("05-22-2017 12:30", "%m-%d-%Y %H:%M") print(deadline) # 2017-05-22 12:30:00
Дата и время в Python
В Python для описания даты и времени используется 3 разных объекта:
- date для хранения даты “25 декабря 2018г.”
- time для времени без даты
- datetime для времени с датой “25 декабря 2018г., 21:01:54”
Все объекты живут в модуле datetime :
import datetime print(datetime.datetime.now()) print(datetime.date.today())
В модуле datetime есть отдельный объект timezone для хранения часового пояса: UTC, UTC+3h, UTC-8 и другие. Объекты time и datetime могут хранить время с учетом часового пояса или без.
Работать с часовыми поясами сложно: приходится учитывать летнее и зимнее время, следить за изменениями в законодательстве разных стран. В Python для этих целей есть популярная библиотека pytz. Она поставляется со своей базой данных и регулярно обновляется.
Чтобы избежать работы с часовыми поясами используют Unix Timestamp. Это число с количеством секунд, прошедших с полуночи 1 января 1970 года по UTC. Timestamp не зависит от часового пояса и выражается одним числом 1546704810.414488 . Такой формат удобен при передаче и хранении данных, но непонятен человеку.
Все форматы даты и времени можно конвертировать один в другой. Это не тривиально, но спасает StackOverflow.
Примеры работы с датой и временем
Попробуйте бесплатные уроки по Python
Получите крутое код-ревью от практикующих программистов с разбором ошибок и рекомендациями, на что обратить внимание — бесплатно.
Переходите на страницу учебных модулей «Девмана» и выбирайте тему.
Какая библиотека отвечает за время? информатика
1.Як називається програма для створення презентації. Які способи завантаження ? 2.Етапи створення презентації. 3.Виконання яких етапів залежить від ме … ти створення презентації? 4.Залежно від мети презентація може бути створена для. 5.Які об’єкти може мистити презентація для усного виступу? 6.Від чого залежить зміст презентації? 7.З яких джерел можна добрати матерали для створення презентацій? 8.Які дії треба виконати на етапі створення структури презентації? 9. Які операції може виконувати користувач у редакторах для створення презентацій? Опрацювати пар.2.1 підручника, визначити та записати в зошит відповіді на запитання: 10. Що називається анімацією? 11. Які групи ефектів (їх назва) можна додавати до об’єктів на слайдах презентації? Фото-результат надіслати на перевірку
СРОЧНО ДАЮ 10 БАЛОВ!
Переведите из восьмеричной системы счисления в шестнадцатеричную число 718. 1) E4 2) 47 3) 39 4) 71
1. Сколько единиц в двоичной записи числа 202? 1) 8 2) 4 3) 54) 7
Помогите пожалуйста срочно.(дам 20 баллов.). Напишите небольшое эссе в котором отразите основные этапы революции цифровых компьютеров.
Полезные библиотеки для Python: чем пользуются разработчики
Мария Жарова Эксперт по Python и математике для Data Science, ментор одного из проектов на курсе по Data Science.
Библиотеки Python — это файлы с шаблонами кода. Их создали для того, чтобы люди не набирали каждый раз заново один и тот же код: достаточно открыть файл, вставить свои данные и получить результат. Рассказываем, какие библиотеки часто используют разработчики на Python.
Для работы с приложениями
Одна из областей применения Python — разработка веб-приложений и десктопных программ. Библиотеки помогают сделать процесс проще. Requests. Упрощает генерацию HTTP-запросов к другим сервисам, помогает писать их очень просто и быстро. Код получается лаконичным, а запрос легко настроить и отправить. Библиотека поддерживает множество функций и написана понятным языком.
Освойте профессию
«Fullstack-разработчик на Python»
Fullstack-разработчик на Python
Fullstack-разработчики могут в одиночку сделать IT-проект от архитектуры до интерфейса. Их навыки востребованы у работодателей, особенно в стартапах. Научитесь программировать на Python и JavaScript и создавайте сервисы с нуля.
Профессия / 12 месяцев
Fullstack-разработчик на Python
Создавайте веб-проекты самостоятельно
4 490 ₽/мес 7 483 ₽/мес
HTTPX. Расширение для Requests. Оно поддерживает все функции библиотеки, помогает работать с HTTP и асинхронностью. HTTPX помогает отправлять и получать запросы, работать с клиент-серверными протоколами взаимодействия веб-сервера и приложения. Когда нужно принимать важные решения, связанные с будущим, профессией и самоопределением, бывает страшно. Но важный шаг к избавлению от страха — озвучить его. Сделайте это, ответив на пять коротких вопросов. Ссылка в конце статьи. Retrying. Автоматизирует повторные вызовы. Если действие в коде, например запрос к внешнему источнику, не выполнилось и вернуло ошибку, с помощью Retrying можно настроить автоматические повторные попытки. Количество попыток и возможные изменения в запросах тоже настраиваются. Celery. Помогает правильно распределить множество задач в больших проектах, расставить приоритеты и выполнить их в оптимальной последовательности. Часто используется в backend-разработке, например с фреймворком Django. Dramatiq. По назначению библиотека похожа на Celery, но считается более новой и работает иначе. Она нужна для распределения задач, которые выполняются фоново. Библиотека лишена ряда недостатков Celery и более удобна в использовании. Flask. Микрофреймворк для создания простейших веб-приложений на Python. Flask помогает быстро создать простой проект и в дальнейшем масштабировать его. Он может интегрироваться с другими инструментами, например для дизайна и визуализации интерфейса.
Для машинного обучения и ИИ
Машинное обучение, анализ данных, искусственный интеллект — это области, в которых Python используется как основной язык. Он применяется в распознавании, предсказании, генерации данных, в том числе в компьютерном зрении, обработке естественного языка и других направлениях. Библиотеки как всегда упрощают работу с задачами. Также они используются для математических расчетов, построения графиков и пр. NumPy. Предназначена для работы с числами и сложной математикой. В первую очередь она облегчает расчеты с матрицами и многомерными массивами — именно в таком виде мы передаем любые данные на вход алгоритмам и моделям в методах глубокого обучения. Поэтому NumPy входит в базовый стек библиотек для Machine Learning. SciPy. Основана на NumPy, но имеет более широкий функционал. Она предназначена для глубоких и сложных математических операций и вычислений. В SciPy много функций для научного анализа и работы с высшей математикой.
Станьте Fullstack-разработчик на Python и найдите стабильную работу
на удаленке
Matplotlib. Используется для удобного построения графиков и визуализации результатов. Активно применяется в задачах анализа данных, при оценке и сравнении метрик алгоритмов, наблюдениях за моделью. Нередко Matplotlib используется в тандеме с NumPy и SciPy. Pillow. Предназначена для работы с картинками. Библиотека помогает их обрабатывать, применять различные эффекты, «чистить» от шума, работать с пикселями и делать многое другое. Обработка изображений обычно используется в задачах компьютерного зрения, когда нужно перевести картинку в понятный для компьютера формат. TensorFlow. Мощная библиотека для глубокого обучения. В основном TensorFlow используется для создания и обучения нейронных сетей. Ее можно представить как «ядро» для математических вычислений на Python. Она представляет данные как тензоры — векторы, которые складываются в графы. Keras. Упрощает использование TensorFlow. Keras отвечает за создание и настройку моделей и нейросетей, а TensorFlow выполняет в них расчеты. PyTorch. Еще одна библиотека с открытым исходным кодом от Facebook*, которая используется для глубокого обучения, создания и обучения нейронных сетей. Она более новая, чем TensorFlow и показывает по сравнению с ней лучшие результаты. Pymorphy2. Это морфологический анализатор русского языка. Он распознает и приводит слова к нормальной форме (например, «люди -> человек», или «гулял -> гулять»), меняет число, род, падеж и пр. Pymystem3. Библиотека от Яндекса имеет точно такой же функционал, как и Pymorphy2, и является ее альтернативой. Pymystem3 быстро и качественно распознает части речи и лексемы слова. OpenCV. Это открытая библиотека для работы с алгоритмами компьютерного зрения, машинным обучением и обработкой изображений.
Читайте также 15 библиотек Python для Data Science
Для логирования, обработки и форматирования данных
И при разработке, и при тестировании специалист должен иметь дело с большим количеством информации. «Сырые» данные нужно приводить к единому виду и очищать от лишних сведений, чтобы не вызывать ошибок и получать более точные результаты. Уже обработанные – заносить в различные системы. А саму работу программы следует логировать, то есть записывать сведения о ее действиях. Логи нужно форматировать, выводить и сохранять в файл. Для всего перечисленного тоже есть свои библиотеки. Rich. Позволяет форматировать текст, который Python выводит в консоль. Словосочетание Rich Text означает «отформатированный», «украшенный» текст. Можно сделать разноцветными сообщения в консоли, изменить в них начертание шрифта, выводить таблицы, пользоваться эмодзи. Это удобно, если нужны понятные и наглядные логи. Loguru. Инструмент для удобного и простого логирования данных. В Python есть встроенная библиотека logging, но многие разработчики считают ее неудобной из-за сложных конфигураций логов, неудобства настроек разного уровня логирования и ротации файлов логов. Поэтому они пишут логи через loguru. Библиотека имеет широкие настройки форматирования, удобна в работе и поддерживает множество функций, например архивирование файлов с логами. Pydantic. Помогает не только обрабатывать данные: она вносит в Python строгую типизацию и четкость в работе. Но обычно ее используют для валидации и парсинга: Pydantic проверяет и приводит данные из других сервисов к единому виду. Разнородные данные сложно воспринимать и программе, и человеку. Dateparser. Инструмент находит и определяет даты в массиве данных. Он работает с разными форматами записи: и строгими, и «человекопонятными». Dateparser сможет найти дату и формата «25.06.1999», и формата «вчера» или «месяц назад». В основном библиотека используется при парсинге данных.
Для отслеживания и анализа
Во время работы программы разработчику часто необходимо «следить» за ее поведением и вовремя обнаруживать неполадки. Библиотеки ниже помогают решить эту задачу. Py-spy. Следит за тем, что и как выполняет программа, сколько времени и ресурсов она тратит на разные задачи, мониторит ее работу. Py-spy сначала обращается к системе компьютера, а затем сохраняет и выводит полученную информацию, которую можно использовать в работе. Вам не нужно перезагружать или модифицировать работающую программу: инструмент помогает получать информацию, не затрагивая исходный код. Библиотека удобна при поиске багов, особенно если нельзя переписать код. Pympler. Мониторит и анализирует память, которая используется при исполнении кода программ на Python. Инструмент находит ее избыточное потребление, утечки и другие баги. С помощью Pympler можно узнать все о размере и длительности процессов приложения на Python за время работы.
Для тестирования
Для проверки работоспособности программ обычно устраивают тестирование. Это отдельное направление в IT. Для кода на Python также пишут тесты, генерируют для них данные, меняют настройки среды и многое другое. Для упрощения таких задач тоже существуют специальные библиотеки. Responses. Выше мы говорили про requests — это ее противоположность. Responses помогает генерировать различные ответы на запросы и затем анализировать их результаты. В отличие от requests, responses используется в основном при тестировании — помогает проверять, как приложение реагирует на разные ответы внешнего сервиса. Freezegun. Библиотека поможет, если нужно протестировать работу программы в конкретный период. Она «замораживает» параметры даты и времени на определенной точке, нужной программисту. Это может быть полезно, например, если тестируемая программа должна работать по-разному в зависимости от времени суток или дня недели. Faker. Для тестирования функциональности приложения часто нужно заполнять его данными, например о пользователях. Использовать реальные персональные данные в такой ситуации некорректно и небезопасно. Поэтому лучше воспользоваться Faker — библиотекой, которая помогает сгенерировать большое количество ненастоящей информации. Это могут быть ФИО, телефоны, даты рождения, данные карточек и многое другое. Factory_boy. Еще один инструмент для генерирования данных. В отличие от Faker, он генерирует фикстуры — блоки кода, которые выполняются до или после тестовых функций. Фикстуры помогают привести приложение в нужное состояние, задать исходные данные или сгенерировать информацию для теста. Эта библиотека упрощает их создание и применяется в основном в unit-тестировании.
Для других задач
У Python много и других вариантов применения: написание скриптов, автоматизация рутинных задач в разработке и так далее. Вот несколько полезных библиотек, которые могут серьезно улучшить жизнь разработчику. Funcy. Это набор утилит для практического применения, набор конструкций, которые упрощают код. Он облегчает написание программ и работу с простыми, но однообразными действиями. Например, Funcy упрощает повседневные задачи разработчика, например помогает быстро просмотреть структуру данных или модифицировать функцию. Tqdm. Библиотека, полезная для написания скриптов. Она генерирует прогресс-бары, которые показывают продвижение по коду и оставшееся время его выполнения. Программа, которая долго работает, — «черный ящик» для разработчика: он не знает, зависла она или нет, на каком этапе выполнения сейчас находится. Tqdm помогает легко и быстро отслеживать ее состояние и получать больше информации. Информация о выполнении программы будет выводиться в консоль в удобном для разработчика виде. Black. В разработке есть понятие — код-стайл, или code style. Это набор соглашений о том, как правильно оформлять код. Разработчики должны придерживаться код-стайла, чтобы легче понимать код друг друга. Соглашение об оформлении кода на Python называется PEP8. Писать рекомендуется в соответствии с ним, но проверять оформление вручную может быть долго и неудобно, а библиотека black проводит такие проверки автоматически. Это автоформатер: он исправляет нарушения код-стайла и делает код более чистым. Пройдите опрос: Копилка страхов Skillfactory *Принадлежит компании Meta, которая признана экстремистской на территории РФ.