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

如何用Python3实现函数:输入双日期提取年份并区分闰平年

单行输入双日期提取年份并统计闰平年的Python函数

以下是满足需求的完整实现,包含单行输入处理、年份提取、闰平年判断及结果返回的功能:

def classify_leap_years():
    # 接收单行输入的两个日期,格式为 dd/mm/yyyy, dd/mm/yyyy
    input_str = input("请输入两个日期(格式:dd/mm/yyyy, dd/mm/yyyy):")
    # 分割并清理日期字符串
    date1_str, date2_str = [d.strip() for d in input_str.split(',')]
    
    # 提取年份
    start_year = int(date1_str.split('/')[-1])
    end_year = int(date2_str.split('/')[-1])
    
    # 确保起始年份不大于结束年份
    if start_year > end_year:
        start_year, end_year = end_year, start_year
    
    leap_years = []
    non_leap_years = []
    
    # 遍历年份范围,判断闰平年
    for year in range(start_year, end_year + 1):
        if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
            leap_years.append(year)
        else:
            non_leap_years.append(year)
    
    # 返回结果列表
    return leap_years, non_leap_years

# 调用函数并打印结果
leaps, non_leaps = classify_leap_years()
print(f"闰年:{', '.join(map(str, leaps))}")
print(f"非闰年:{', '.join(map(str, non_leaps))}")

关键部分说明

  • 单行输入处理:用split(',')分割输入字符串为两个日期片段,strip()清理空格后,通过split('/')拆分日期取最后一段得到年份,转换为整数类型。
  • 闰年判断优化:将原代码的多层嵌套条件简化为复合逻辑(能被4整除但不能被100整除) 或者 (能被400整除),逻辑等价且可读性更强。
  • 结果输出优化:用', '.join(map(str, 列表))拼接元素,避免原代码循环打印导致的末尾多余逗号问题。
  • 边界处理:增加年份交换逻辑,确保起始年份不大于结束年份,避免范围错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 10:15:27