You need to enable JavaScript to run this app. Python使用while循环计算列表负数总和输出为0问题求助
优惠活动
大模型
产品
解决方案
定价
更多

Python使用while循环计算列表负数总和输出为0问题求助

负数求和代码问题排查

错误原因

  • 你编写的while循环设置了并联判断条件,必须同时满足i < len(given_list3)和given_list3[i] < 0才会执行循环体
  • 给定列表的首个元素是正整数7,第一次判断时given_list3[i] < 0就不成立,循环直接终止,累加变量total7始终为初始值0
  • 核心逻辑偏差:你需要的是「遍历全列表,仅累加符合负数要求的元素」,但原代码逻辑是「遍历到第一个非负数就直接停止所有操作」

修复代码

方案1:保留while循环,调整判断逻辑

将负数判断移到循环体内部,保证遍历覆盖所有元素:

given_list3 = [7, 5, 4, 4, 3, 1, -2, -3, -5, -7]
total7 = 0
i = 0
while i < len(given_list3):
    # 仅当元素为负数时执行累加
    if given_list3[i] < 0:
        total7 += given_list3[i]
    i += 1
print(total7)

运行输出结果为:-17

方案2:简化写法,使用Python内置sum函数

通过生成器表达式过滤负数后直接求和,代码更简洁易读:

given_list3 = [7, 5, 4, 4, 3, 1, -2, -3, -5, -7]
total7 = sum(num for num in given_list3 if num < 0)
print(total7)

运行输出结果同样为:-17

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 06:33:03