You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python的if-else语句判断同一年中两个日期的先后顺序

修正后的日期先后判断Python程序

修正代码

# 读取日期输入并转换为整数类型
month1 = int(input("输入第一个日期的月份(1-12):"))
month2 = int(input("输入第二个日期的月份(1-12):"))
date1 = int(input("输入第一个日期的日(1-31):"))
date2 = int(input("输入第二个日期的日(1-31):"))

# 判断同一年中日期的先后顺序
if month1 < month2:
    print("Correct order!")
elif month1 > month2:
    print("Wrong order!")
else:
    # 月份相同时,进一步比较日期
    if date1 < date2:
        print("Correct order!")
    elif date1 > date2:
        print("Wrong order!")
    else:
        print("Same date!")

原代码的问题及修正说明

  • 输入类型错误:原代码直接使用input()返回的字符串进行数值比较,字符串的大小逻辑和整数完全不同(例如字符串"10"会被认为小于"2"),必须通过int()转换为整数才能正确比较。
  • 逻辑结构混乱:原代码将月份和日期的判断拆分为独立的if块,会导致逻辑冲突(比如月份不同时仍会输出日期判断的结果)。正确逻辑是先比较月份,只有月份相同时才需要比较日期,采用嵌套的if-else结构实现。
  • 输出文本不匹配需求:原代码输出的"right order!"等文本不符合要求,统一替换为需求指定的"Correct order!"、"Wrong order!"和"Same date!"。
  • 条件分支错误:原代码中存在分支逻辑错位(例如在日期判断的分支里去判断月份是否相等),调整后将月份相等的分支放在月份比较的else块中,再嵌套日期比较的逻辑。
  • 输入提示不准确:原提示日期范围为1-30,修正为1-31以覆盖所有月份的日期情况。

内容的提问来源于stack exchange,提问作者sena

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 05:54:22