СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Методическая разработка «Модуль datatime на языке программирования Python ч. 3»

Категория: Информатика

Нажмите, чтобы узнать подробности

Просмотр содержимого документа
«Методическая разработка «Модуль datatime на языке программирования Python ч. 3»»

МУНИЦИПАЛЬНОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ДОПОЛНИТЕЛЬНОГО ОБРАЗОВАНИЯ

«ЦЕНТР ДЕТСКОГО ТЕХНИЧЕСКОГО ТВОРЧЕСТВА»

















Методическая разработка

«Модуль datatime на языке

программирования Python ч. 3»

к дополнительной общеобразовательной

общеразвивающей программе

технической направленности

«Программирование на Python»





Возраст детей: 10-17 лет





Автор: Костычев Вадим Александрович













г. Заречный Пензенской области

2023 г.

В ходе изучения программирования на основе языка Python большую роль играет разработка проектов. Они позволяют отработать как навыки программирования, вспомнить работу различных функций, команд, развить навыки построения алгоритмов.

Целью данной разработки является повышение интереса учащихся к техническому творчеству посредством работы над проектом на языке Python.

Данная методическая разработка используется как обучающий пример для работы по дополнительной общеобразовательной общеразвивающей программе технической направленности «Программирование на Python». С их помощью учащиеся смогут применить теоретические знания на практике, построив сложные алгоритмы для решения различных задач.

Продолжая тему работы с различными методами в библиотеке datetime языка программирования Python необходимо сказать о том, что существует локализация вывода различных аргументов, такие как дни недели или месяцев на разные языки.

Для того, чтобы можно было использовать локализацию, необходимо подключить модуль locale:

import locale

Для того, чтобы активировать русскую локализацию необходимо передать следующие параметры:

locale.setlocale(locale.LC_ALL, 'ru_RU.UTF-8')

Для переключения на английскую локализацию используем следующий код:

locale.setlocale(locale.LC_ALL, 'en_EN.UTF-8')

Пример работы локализации:

from datetime import *

import locale



locale.setlocale(locale.LC_ALL, 'ru_RU.UTF-8')



today_date = date(2024, 1, 15)

print(today_date.strftime("%A %d, %B %Y"))



Результат:

понедельник 15, Январь 2024



Кроме того, важно знать, что данные времени и даты по умолчанию вводятся в формате ISO 8601:

  • дата: YYYY-MM-DD

  • время: HH:MM:SS или HH:MM:SS.ffffff

Зная это, вы можете без дополнительного кода ввести нужные вам даты в определенном формате, будете знать в каком формате выводятся данные, если не указано другое форматирование.



При использовании библиотеки datatime также возможно использование функций min() и max(), например, для нахождения минимальной, максимальной даты в списке дат, а также функция sorted() для сортировки дат в списках.



from datetime import *



all_dates = [date(2023, 3, 21), date(2020, 9, 1), date(2024, 1, 15)]



print(max(all_dates))

print(min(all_dates))

print(sorted(all_dates))



Результат:

2024-01-15

2020-09-01

[datetime.date(2020, 9, 1), datetime.date(2023, 3, 21), datetime.date(2024, 1, 15)]



Кроме того, мы можем сравнивать даты и время при помощи таких операторов сравнения как , =, ==, !=.



from datetime import *



fist_date = date(2015, 5, 20)

second_date = date(2017, 9, 3)



first_time = time(17, 7, 15)

second_time = time(12, 3, 6)



print(fist_date

print(first_time



Результат:

True

False

Для получения строкового типа данных объектов date и time, кроме функции str мы можем также воспользоваться методом isoformat()

from datetime import *



dates = date(2024, 1, 14)

times = time(10, 59, 23)



print('Дата:', dates.isoformat())

print('Время:', times.isoformat())



Задача 1. Сортировка дат

Введите 10 дат с клавиатуры в формате ISO 8601, вывести в формате DD.MM.YYYY каждое на новой строке в порядке возрастания.

Входные данные:

2021-02-12

2009-12-12

2001-03-11

2007-12-01

2002-11-05

2009-07-07

2005-02-20

2010-04-14

2024-01-01

2025-03-04



Выходные данные:

12.02.2021

12.12.2009

11.03.2001

01.12.2007

05.11.2002

07.07.2009

20.02.2005

14.04.2010

01.01.2024

04.03.2025



Листинг программы:

from datetime import *

import locale



locale.setlocale(locale.LC_ALL, 'ru_RU.UTF-8')



dates = []

for i in range(10):

one_date = input().split('-')

dates.append(date(int(one_date[0]), int(one_date[1]), int(one_date[2])))



for i in dates:

print(i.strftime('%x'))



Задача 2. Что позже?

Введите две даты с клавиатуры. Выведите большую из них в формате:

день_недели день_месяца месяц_полностью год_с веком

Входные данные:

2021-02-12

2009-12-12



Выходные данные:

пятница 12 Февраль 2021



Листинг программы:

from datetime import *

import locale



locale.setlocale(locale.LC_ALL, 'ru_RU.UTF-8')



dates = []

for i in range(2):

one_date = input().split('-')

dates.append(date(int(one_date[0]), int(one_date[1]), int(one_date[2])))



if dates[0] = dates[1]:

print(dates[0].strftime('%A %d %B %Y'))

else:

print(dates[1].strftime('%A %d %B %Y'))



Задача 3. Следующий рабочий день

Напишите программу, которая принимает текущую дату в формате "YYYY-MM-DD" и определяет следующий рабочий день (понедельник - пятница). Программа должна выводить эту дату.



Входные данные:

2024-01-13



Выходные данные:

Следующий рабочий день: 2024-01-15



Листинг программы:

from datetime import *

import locale



input_date = datetime.strptime(input(), '%Y-%m-%d')

next_working_day = input_date + timedelta(days=1)

while next_working_day.weekday() = 5: # Если следующий день - суббота или воскресенье

next_working_day += timedelta(days=1)

print("Следующий рабочий день:", next_working_day.strftime('%Y-%m-%d'))