我似乎无法通过此功能将列表添加到一起

时间:2014-11-22 01:57:13

标签: python function sum

我试图找到一种方法来添加数字列表而不使用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

1 个答案:

答案 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)