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

为什么我的Python代码无法计算列表中所有负数的和?

代码问题排查及修正

存在的3个核心问题

  • 循环条件逻辑错误:while语句将「索引边界判断」和「元素是否为负的判断」用and关联,只要任一条件不成立就会终止循环。你提供的列表第一个元素是7>0,given_list3[i] <=0直接不成立,循环全程没有执行,total7始终保持初始值0,最终输出0。
  • 变量名拼写错误:你定义的列表变量名为given_list3,但循环累加时写的是givenlist3,缺少下划线,实际运行会直接触发NameError报错。
  • 索引边界错误:Python列表索引从0开始,有效索引范围是0 ~ len(列表名)-1,你写的i <= len(given_list3)会在i等于列表长度时出现索引越界,触发IndexError。

修正后的代码

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)

更简洁的Python原生写法

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

两种写法运行后都能输出预期结果-17。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 07:06:03