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

如何简化带输入校验的Gregorian Epact计算Python脚本?

简化格里高利历闰余计算脚本的方案

原脚本存在一些可以优化的地方,比如依赖math库计算位数的方式不够直观,还存在潜在的变量未定义问题,下面是简化后的实现,同时保留所有要求的功能:

# 格里高利历闰余计算程序
print("本程序用于计算给定年份的格里高利历闰余值。")

# 最多允许5次输入尝试
for attempt in range(5):
    year_input = input("请输入4位年份(例如:2020):")
    # 校验输入是否为有效数字且是4位数
    if year_input.isdigit() and len(year_input) == 4:
        year = int(year_input)
        break
    # 处理输入错误的情况
    if attempt == 4:
        print("已用完所有尝试次数!")
        exit()
    print("输入无效,请输入一个4位数字的年份。")

# 计算闰余
century = year // 100
epact = (8 + (century // 4) - century + ((8 * century + 13) // 25) + 11 * (year % 19)) % 30
print(f"该年份的闰余值为 {epact} 天。")

简化说明

  • 移除不必要的依赖:删掉了math库,直接用字符串的isdigit()方法判断是否为纯数字,结合len()判断4位数,逻辑更直观,还避免了原脚本中输入非数字时digits变量未定义的错误。
  • 简化循环逻辑:用for循环直接控制5次尝试,不用手动维护计数变量和状态标记,代码更简洁易读。
  • 优化错误处理:当第5次输入仍错误时,直接退出程序,避免后续无效判断。
  • 格式化输出优化:用f-string替代拼接式打印,语句更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 18:51:02