python - 我似乎无法使用此功能将列表添加在一起

标签 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

最佳答案

问题是您正在这一行重新定义 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/

相关文章:

python - "a and a or b"的目的是什么?

python - Django 响应没有内容 - 如何调试?

python - 如何使用 Python 从网络浏览器获取 cookie?

javascript - 使用参数从 PHP 调用带有参数(在特定文件中)的 Javascript 函数

R:关于函数何时理解其参数的一些提示?

json - 在 PostgreSQL 中聚合 JSON

python - 如何创建符号矩阵并用sympy批量替换?

php - 为什么 php gettype 函数总是从 $_POST[$var] 返回字符串?

c++ - 求 vector int 的一部分的总和

mysql - 按求和变量分组