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

Ответы на вопрос

Программа:
Python:
def date(day, month, year):
if day <= 0 or month <= 0 or year < 0:
return False
else:
months = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
if year % 4 == 0: months[1] = 29
if day <= months[month - 1]:
if month <= 12:
return True
return False
if __name__ == '__main__':
day = int(input('Day: '))
month = int(input('Month: '))
year = int(input('Year: '))
print(date(day, month, year))
Объяснение:
В начале объявляем функцию date() с тремя аргументами: day, month, year. Далее делаем проверку, введены ли только числа, больше за единицу. Если так, то выполняем следующий код: регистрируем массив из 12 элементов, которые означают кол-во дней в месяце. Если этот год високосный (делится на 4 без остатка), то заменяем 28 на 29 (элемент с индексом 1).
Далее делаем проверку, количество дней меньше либо равно нужному количеству по условию. Если так, то делаем проверку для введённого месяца: если число меньше либо равно 12. Если всё выполняется, возвращаем True. Если что-то не выполнится, функция вернёт False.
После - с помощью условия if __name__ == '__main__' выполняем обычный код - ввод в консоли дня, месяца года, а также вызов функции date() с этими данными.



Для создания функции, которая проверяет, существует ли введенная дата в календаре, вы можете использовать стандартные библиотеки Python. Вам понадобится модуль datetime
для выполнения этой задачи. Вот пример функции is_valid_date
, которая выполняет эту задачу:
pythonfrom datetime import datetime
def is_valid_date(day, month, year):
try:
date = datetime(year, month, day)
return True
except ValueError:
return False
# Пример использования функции:
day = 20
month = 10
year = 2023
if is_valid_date(day, month, year):
print(f"{day}/{month}/{year} существует в календаре.")
else:
print(f"{day}/{month}/{year} не существует в календаре.")
Эта функция создает объект datetime
с введенной датой и временем, и если это проходит без ошибок, то дата считается допустимой. Если возникает ошибка ValueError
, то дата не существует, и функция возвращает False
.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







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