Python自定义sum()函数计算列表总和返回值异常问题排查
代码问题排查
你的代码存在4处错误,直接导致运行结果不符合预期:
- 累加变量初始化位置错误:
sum = 0写在了for循环内部,每次循环执行时都会把累加值重置为0,无法保存之前的累加结果 - 累加运算符书写错误:
=+不是累加操作,作用是将变量赋值为当前元素的正值,正确的累加运算符为+= - 返回语句位置错误:
return sum写在了for循环内部,第一次循环执行完就会直接终止函数返回值,后续的循环根本不会执行 - 函数设计不规范:自定义函数名和Python内置求和函数
sum重名,且没有将待计算的列表作为参数传入,直接依赖全局变量,复用性极差。
修正后可运行代码
def calc_sum(nums): total = 0 for x in range(len(nums)): total += nums[x] return total user = [1,1,1] score = calc_sum(user) print(score)
运行上述代码会正确输出列表总和3。
更符合Python编码习惯的简化写法可以不用索引遍历,直接迭代列表元素即可:
def calc_sum(nums): total = 0 for num in nums: total += num return total
内容的提问来源于stack exchange,提问作者Danny Moulier
相关产品推荐
相关产品推荐

