我正在尝试编写一个在列表中添加数字的程序(list[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 中不起作用?
最佳答案
你的代码在逻辑上是错误的。每次循环运行时,您都会将 old_value 的值重新初始化为 0。
第一个方法仅保留列表中的最后一个条目,因为 old_value 始终为 0。
关于python - 我的变量在循环内部或外部发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32360226/