Python - 解释函数参数

标签 python

所以我理解了这个简单的 for 循环:

sum = 0
for number in {1,2,3,4}:
    sum = sum + number
    print sum

>>> 
1
3
6
10
>>> 

然后这是一个简洁的小代码,结合了 for 循环和我在互联网上找到的函数:

def sum_list(l):
    sum = 0
    for number in l:
        sum = sum + number
    return sum

print sum_list([1, 7, 4])

>>> 
12

我不明白的是 python 如何解释这段代码(而是 Python 如何知道将 3 个参数 1、7、4 加在一起)。

如果你能帮我分解它,我真的会帮忙!


提出另一个问题让你们回顾:

sum = 0
for number in {1,2,3,4}:
    sum = sum + number
    return sum

吐出一个错误。 print sum 会将结果列为 1,3,6,10

错误说:Syntaxerror: 'return' outside of function


[编辑] @sshashank124

例如:这段代码吐出 3 个答案。它打印出:

sum = 0
for number in {1,7,4}:
    sum = sum + number
    print sum

>>> 
1
8
12 
>>> 

但是这个:

def sum_list(l):
    sum= 0
    for number in l:
        sum = sum + number
    print sum
print sum_list([1, 7, 4])

>>> 
12
none

只吐出 1 个答案,12。我的问题是为什么会这样。

最佳答案

for number in l:

这会遍历 l,并且 number 将在每次迭代中包含 l 的每个元素。你可以这样检查

for number in l:
    print number
# 1
# 7
# 4

您正在将这些数字添加到 sum 变量中。你可以这样检查

sum = 0
for number in l:
    sum = sum + number
    print sum
# 1
# 8
# 12

我相信您这样做是出于教育目的。如果你真的想找到一个迭代的总和,那么你可以使用内置的 sum函数,像这样

sum([1, 7, 4])

关于Python - 解释函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22677345/

相关文章:

c# - 在 Python 中获取 C# 日志

python - 默认导入pprint作为调试工具

python - 使用python时gevent发生线程异常

python - Python 中的基本并发 SQLite 编写器

python - pygsr 类型错误 : 'float' object cannot be interpreted as an integer

javascript - axios如何获取.catch()中的状态码?

python - 如何在 python 中避免 e-05

python - Selenium Desired Capabilities - 为 PhantomJS 驱动程序设置 handlesAlerts

Python Pandas Boolean Dataframe,其中 Dataframe 等于 False - 返回 0 而不是 False?

python - 使用绑定(bind)时 cx_Oracle 返回空查询