我的变量在循环内部或外部发生变化

时间:2015-09-02 18:07:13

标签: python loops for-loop

我正在尝试编写一个在列表中添加数字的程序(列表[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中不起作用是在循环内吗?

2 个答案:

答案 0 :(得分:1)

在第一段代码中,old_value在每次迭代中都设置为0。因此,循环中的最后一行old_value=new_value不会改变任何内容

答案 1 :(得分:1)

您的代码在逻辑上是错误的。每次循环运行时,您都要将old_value的值初始化为0。

第一种方法仅保留列表中的最后一个条目,因为old_value始终为0.