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

如何用Python实现2020年每个日期的数字求和并输出?

解决方案

你可以通过字符串处理的方式轻松提取日期中的数字并求和,完全不需要纠结月份长度的差异。具体步骤如下:

  • 将日期格式化为yyyy-mm-dd字符串后,移除分隔符-
  • 遍历字符串中的每个字符,转换为整数后累加求和

修改后的完整代码如下:

from datetime import date, timedelta

def date_range(start, end):
    # 修复原逻辑遗漏最后一天的问题:range范围需要+1才能包含end日期
    for i in range(int((end - start).days) + 1):
        yield start + timedelta(i)

start = date(2020, 1, 1)
end = date(2020, 12, 31)
for each_date in date_range(start, end):
    date_str = each_date.strftime("%Y-%m-%d")
    # 核心求和逻辑:去掉分隔符后逐个字符转整数求和
    digit_sum = sum(int(char) for char in date_str.replace('-', ''))
    print(f"{date_str} 的数字和为 {digit_sum}")

关键细节说明

  1. 修复日期范围遗漏:原代码的range(int((end - start).days))会漏掉2020-12-31,因为end - start的天数是364,range(364)仅生成0到363的索引,加1后才能覆盖全年所有日期。
  2. 简化数字提取:通过replace('-', '')把日期字符串转为无分隔符的纯数字串(比如2020-01-01变成20200101),再遍历每个字符转整数求和,完全避开了月份天数的复杂判断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 03:25:19