我正在尝试找到一种无需使用 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
最佳答案
问题是您正在这一行重新定义 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)
关于python - 我似乎无法使用此功能将列表添加在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27073217/