我正在尝试编写一个在列表中添加数字的程序(列表[1,2,3]应该返回1 + 2 + 3 = 6.
这个不起作用:
def sum_list (list):
for number in list:
old_value=0
new_value=old_value+number
old_value=new_value
return new_value
这个确实有效:
def sum_list (list):
old_value=0
for number in list:
new_value=old_value+number
old_value=new_value
return new_value
有人可以解释为什么程序在old_value中不起作用是在循环内吗?
答案 0 :(得分:1)
在第一段代码中,old_value
在每次迭代中都设置为0
。因此,循环中的最后一行old_value=new_value
不会改变任何内容
答案 1 :(得分:1)
您的代码在逻辑上是错误的。每次循环运行时,您都要将old_value的值初始化为0。
第一种方法仅保留列表中的最后一个条目,因为old_value始终为0.