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

Django循环内计算值总和出错,请求技术协助

问题分析与解决方案

你的问题核心在于求和变量的初始化位置错误——你把getsum = 0放在了循环体内部,导致每次循环都会将getsum重置为0,自然只能得到当前循环的单个值,而非累计总和。

修正后的基础代码

把getsum = 0移到循环外部,让它仅初始化一次,再在循环内持续累加:

getsum = 0  # 初始化放在循环外,只执行一次
for index in range(len(json_objects)):
    bill_value = json_objects[index]['fields']['bill']
    getsum += float(bill_value)
print(getsum)  # 循环结束后统一打印总和,而非每次循环都输出

更简洁的Pythonic写法(推荐)

利用Python内置的sum()函数结合生成器表达式,代码更简洁易读,还能避免索引遍历的冗余:

getsum = sum(float(item['fields']['bill']) for item in json_objects)
print(getsum)

额外注意事项

  • 避免用sum作为变量名,它是Python内置函数,会覆盖原有功能,可能引发隐性bug;
  • 如果bill字段存在非字符串、空值等异常情况,建议添加异常处理逻辑,比如:
    getsum = 0
    for item in json_objects:
        try:
            getsum += float(item['fields']['bill'])
        except (KeyError, ValueError):
            # 处理字段不存在或无法转换为浮点数的情况
            print(f"无效的账单数据: {item}")
    print(getsum)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 08:12:50