написать программу на Python!
Историки проанализировали множество древних текстов и выписали из них предполагаемые даты конца света, однако при переписывании ошиблись в некоторых из них. Напишите программу, которая принимает строки с датами до символа точки и для каждой из дат печатает "Корректная" или "Некорректная", а затем выводит число – количество корректных дат. Для анализа даты напишите функцию check_date(). Даты вводятся в формате DD.MM..
Входные данные :
19.05.2016
05.13.2010
21.12.2012
01.01.1000
32.04.2003
.
Выходные :
Корректная
Некорректная
Корректная
Корректная
Некорректная
3
Необходимо также не забыть про проверку високосности года .
Шаг 1: Создание функции проверки даты
Начнем с написания функции check_date(), которая будет принимать дату в виде строки и возвращать True, если дата корректна, или False, если дата некорректна. Функция будет основываться на следующих правилах проверки:
1) День (DD) должен быть числом от 1 до 31.
2) Месяц (MM) должен быть числом от 1 до 12.
3) Год (YYYY) должен быть числом от 1000 до 9999.
4) Если год делится на 4 без остатка, то это високосный год, и в феврале может быть от 1 до 29 дней. В противном случае февраль может иметь только от 1 до 28 дней.
Ниже приведен код функции check_date():
```python
def check_date(date):
day, month, year = date.split('.') # Разделяем дату на составляющие
day = int(day)
month = int(month)
year = int(year)
if year < 1000 or year > 9999:
return False
if month < 1 or month > 12:
return False
if month == 2:
if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
if day < 1 or day > 29:
return False
else:
if day < 1 or day > 28:
return False
elif month in [4, 6, 9, 11]:
if day < 1 or day > 30:
return False
else:
if day < 1 or day > 31:
return False
return True
```
Шаг 2: Создание основной программы
Теперь создадим основную программу, которая будет принимать строки с датами, вызывать функцию check_date() для каждой даты и печатать результаты проверки, а затем выводить количество корректных дат.
```python
correct_count = 0 # Счетчик корректных дат
while True:
date = input() # Ввод даты
if date == '.': # Если встретился символ точки, прекращаем ввод
break
if check_date(date):
print("Корректная")
correct_count += 1
else:
print("Некорректная")
print(correct_count) # Вывод количества корректных дат
```
Шаг 3: Запуск программы и тестирование
Теперь запустите программу и введите даты, по одной на строке, в соответствии с входными данными, пока не встретится символ точки. После этого программа должна вывести результаты проверки и количество корректных дат.
Пример входных данных:
```
19.05.2016
05.13.2010
21.12.2012
01.01.1000
32.04.2003
.
```
Пример выходных данных:
```
Корректная
Некорректная
Корректная
Корректная
Некорректная
3
```
Надеюсь, данное решение полностью отражает задачу и поможет школьнику понять, как решить ее на Python.