В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
dianaverina7777
dianaverina7777
20.02.2021 05:56 •  Информатика

Написать функцию date, принимающую 3 аргумента — день, месяц и год. Вернуть True, если такая дата есть в нашем календаре, и False иначе. Задания нода сделать на Python

Показать ответ
Ответ:
turkmenochka75
turkmenochka75
21.05.2021 08:40

# Написать функцию date , принимающую 3 аргумента — день, месяц и год.

# Вернуть True, если такая дата есть в нашем календаре, и False иначе.

def is_year_leap(year):

   """

   Принимает аргумент: порядковый номер года

   Возвращает значение: если високосный год - True, иначе - False

   """

   if year % 4 != 0:

       return False

   elif year % 100 == 0:

       if year % 400 == 0:

           return True

       else:

           return False

   else:

       return True

def date(day, month, year):

   """

   Принимает аргументы: день, месяц, год

   Возвращает значение: если дата правильная - True, иначе - False

   """

   # Задаем количество дней в месяцах невисокосного года

   set_months = {1: 31,

                 2: 28,

                 3: 31,

                 4: 30,

                 5: 31,

                 6: 30,

                 7: 31,

                 8: 31,

                 9: 30,

                 10: 31,

                 11: 30,

                 12: 31}

   # Проверяем заданы ли верно год и месяц

   if year > 0 and (month >= 1 and month <= 12):

       # Изменяем количество дней для февраля в високосных годах

       if month == 2 and is_year_leap(year) == True:

           set_months[2] = 29

       # Проверяем задан ли верно день

       if day in range(1, set_months[month]+1):

           return True

       else:

           return False

   else:

       return False

# Тест кейсы

print(date(31, 12, 2020)) # Правильная дата

print(date(1, 0, 2000)) # Месяц вне диапазона

print(date(1, 1, 0)) # Год вне диапазона

print(date(29, 2, 2000)) # 29 февраля високосный год

print(date(29, 2, 1900)) # 29 февраля невисокосный год

Объяснение:

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота