我试图找到一种方法来添加数字列表而不使用sum函数。我对此有点新鲜,到目前为止,这就是我所拥有的:
def findSum(nbr_list):
total = 0
nbr_list = []
for nbr in nbr_list:
total = total + nbr
print 'Total: ', total
In [32]: nbr_list = [1,2,3,4,100]
In [33]: findSum(nbr_list)
Total: 0
答案 0 :(得分:2)
问题是您要在此行重新定义nbr_list
:
nbr_list = []
执行此操作会导致nbr_list
不再引用您传入函数的[1,2,3,4,100]
列表,而是引用空列表[]
。这意味着for循环将遍历空列表,total
永远不会递增。因此,打印0
因为这是total
的初始值。
只需删除该行即可使您的功能正常工作:
>>> def findSum(nbr_list):
... total = 0
... for nbr in nbr_list:
... total += nbr # Same as 'total = total + nbr'
... print 'Total: ', total
...
>>> nbr_list = [1,2,3,4,100]
>>> findSum(nbr_list)
Total: 110
>>>
此外,您通常不希望让您的函数打印值而不返回任何内容。更好的方法是让findSum
返回total
,然后打印调用函数的结果:
def findSum(nbr_list):
total = 0
for nbr in nbr_list:
total += nbr
return total
nbr_list = [1,2,3,4,100]
print 'Total: ', findSum(nbr_list)