• 1
    数据输入输出
    • 任务
  • 2
    条件语句
    • 任务
  • 3
    for循环
    • 任务
  • 4
    字符串
    • 任务
  • 5
    while循环
    • 任务
  • 6
    列表
    • 任务
  • 7
    二维数组
    • 任务
  • 8
    字典
    • 任务
  • 9
    集合
    • 任务
  • 10
    函数与递归
    • 任务
  • к

课程 2. Conditions

难度:

任务«堡垒防御»

💻 Python

想象一下,你正在创建一个简单的日历应用程序。这类应用最重要的功能之一——不允许用户输入不存在的日期。例如,2月30日或4月31日。

编写一个程序,要求用户输入三个数字:日、月和年。你的任务——检查输入的日期是否真实。程序应考虑不同月份的天数不同,以及存在闰年,其中2月有29天。

检查规则:

  1. 有31天的月份:一月(1)、三月(3)、五月(5)、七月(7)、八月(8)、十月(10)、十二月(12)。
  2. 有30天的月份:四月(4)、六月(6)、九月(9)、十一月(11)。
  3. 二月(2)在平年有28天,在闰年有29天。
  4. 年份如果能被4整除但不能被100整除,或者能被400整除,则为闰年。

如果日期存在,程序应输出"correct date";否则输出"incorrect date"。

输入格式

日(整数)
月(整数)
年(整数)

输出格式

检查结果(行)

示例

输入

29
2
2024

输出

正确的日期

提示

There will be no clue here, decide for yourself!

main.py
测试 1
测试 2
测试 3
测试 4
测试 5
测试 6
测试 7
测试 8
测试 9
测试 10
开发者解答
# Запрашиваем у пользователя три числа: день, месяц, год
day = int(input())
month = int(input())
year = int(input())

# Проверяем базовую корректность введенных данных
if month < 1 or month > 12:
    print("Некорректная дата")
else:
    # Проверяем корректность дня для каждого месяца
    
    # Месяцы с 31 днем: январь(1), март(3), май(5), июль(7), август(8), октябрь(10), декабрь(12)
    if month in [1, 3, 5, 7, 8, 10, 12]:
        if day < 1 or day > 31:
            print("Некорректная дата")
        else:
            print("Корректная дата")
    
    # Месяцы с 30 днями: апрель(4), июнь(6), сентябрь(9), ноябрь(11)
    elif month in [4, 6, 9, 11]:
        if day < 1 or day > 30:
            print("Некорректная дата")
        else:
            print("Корректная дата")
    
    # Февраль (2) - особый случай
    elif month == 2:
        # Проверяем, является ли год високосным
        is_leap_year = False
        if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
            is_leap_year = True
        
        # Проверяем корректность дня для февраля
        if is_leap_year:
            # Високосный год - до 29 дней
            if day < 1 or day > 29:
                print("Некорректная дата")
            else:
                print("Корректная дата")
        else:
            # Обычный год - до 28 дней
            if day < 1 or day > 28:
                print("Некорректная дата")
            else:
                print("Корректная дата")

🎉 恭喜! 🎉

你出色地完成了任务!这是一个不小的挑战,但你找到了正确答案。你离编程大师又近了一步!继续保持,每一步都让你更强大。

AD

广告

red-snake blue-snake green-snake

正在运行代码...

AI助手

你好!我是你的编程助手。随时向我提问关于 Python 的问题——我可以解释函数、方法,并帮助你完成当前任务!