Python新手求助:自定义Sumn函数列表求和功能异常排查
问题分析与修正
你的代码存在以下几个关键问题,导致无法得到预期的求和结果:
- 遍历对象错误:
for i in mylist[1]试图遍历整数12(mylist[1]的值),但整数不是可迭代对象,运行时会直接抛出错误。你需要遍历整个列表mylist,或者列表的索引范围。 - 提前返回结果:循环内部第一行就执行
return sum,这会让函数在第一次循环时立即返回,根本不会计算所有元素的总和。 - 无效代码:
i+=1写在循环外部,且循环内已经通过for语句重新赋值了i,这句代码永远不会被执行。 - 内置函数名冲突:使用
sum作为变量名会覆盖Python内置的sum()函数,虽然语法合法,但不推荐这么做,容易引发后续问题。
修正后的代码(推荐写法)
直接遍历列表中的每个元素进行累加,代码简洁易懂:
def Sumn(mylist): total = 0 for num in mylist: total += num return total
如果想练习基于索引的遍历写法,可以这样写:
def Sumn(mylist): total = 0 # 遍历列表的所有索引 for i in range(len(mylist)): total += mylist[i] return total
测试验证
你的调用代码无需修改:
import myFunctions mylist = [6, 12, 645, 3, -8] print(myFunctions.Sumn(mylist))
运行后会输出658,与预期的列表元素总和一致。
内容的提问来源于stack exchange,提问作者maspoks
相关产品推荐
相关产品推荐

