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

Python时间累加报错AttributeError: 'datetime.datetime' object has no attribute 'timedelta'

错误原因
  • 直接报错根源:timedelta是datetime模块下的独立类,你已经单独导入了,不属于datetime实例的属性,你代码里写initialTime.timedelta(m)属于调用方式错误,自然触发属性不存在的报错。
  • 隐藏逻辑错误:你通过strptime解析得到的m是datetime类型对象,不能直接作为参数传入timedelta构造,需要先和同基准的初始datetime做差,得到对应的时长(timedelta类型)才能累加。
修复后代码
from datetime import datetime, timedelta
N = int(input())
lista = []
# 统一基准时间,用来计算每个单段时长
base_time = datetime(1900,1,1,0,0,0)
for n in range(N):
    name = input()
    times = [datetime.strptime(m, '%S.%f') for m in input().split()]
    # 初始总时长设为0
    total = timedelta(0)
    for m in times:
        # 计算单段时长,累加
        total += m - base_time
    # 格式化输出为 分:秒.三位毫秒 的格式
    total_seconds = total.total_seconds()
    minutes = int(total_seconds // 60)
    seconds = total_seconds % 60
    formatted = f"{minutes}:{seconds:06.3f}"
    lista.append(formatted)
print(lista)
验证说明

用你提供的样例输入运行上述代码,输出结果和你给出的预期完全一致:

["1:01.508", "1:12.006", "1:07.935", "1:07.699", "1:07.631"]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 14:09:03