在 Python 中具有函数的参数
Args with function in Python
我开始学习Python在args的练习中,我有这块代码,我不太明白为什么我们会定义sum为0然后i定义为sum +=
def add(*args):
sum = 0
for i in args:
sum += i
return sum
感谢帮助!
*args
让我们将未定义数量的参数作为元组发送。在函数的开头,你要求和的地方,明明是0,然后你更新值。
你也可以把sum+=i
写成:
sum=sum+i
我们来做一个小例子,你这样做:
add(1,2,3)
看起来像:
- 你输入函数,sum为0。
- 您对 args (1,2,3) 的每个元素进行迭代。
Iteration 1: sum=0, i =1, sum=sum+i = 1
Iteration 2: sum=1 (updated last iteration doing 0+1) and i 2, we have sum=sum+i=3
Iteration 3 is 3+3 = 6
使用*args
有什么好处?
无需修改函数即可发送任意数量的元素。
当至少有一个参数时,我们希望以下内容为真:
add(x1, x2, ..., xn) == x1 + add(x2, ..., xn)
不过,最终我们遇到了这种情况:
add(x1) == x1 + add()
什么应该 add
return 没有参数?由于 add(x1)
显然应该等于 x1
,因此我们必须定义 add() == 0
。这是因为 0 是加法的 标识 : x + 0 == x
对于 x
的任何值。
因为你的循环在没有参数的情况下根本不会进入,所以我们需要初始化sum = 0
,这样我们跳过循环后,return sum
会return0
根据需要。
循环本身只是将数字一个接一个地相加。如果 args
是 1,2,3,4 那么函数等价于
sum = 0
sum += 1 # 0 + 1 == 1
sum += 2 # 1 + 2 == 3
sum += 3 # 3 + 3 == 6
sum += 4 # 6 + 4 == 10
return sum # return 10
我开始学习Python在args的练习中,我有这块代码,我不太明白为什么我们会定义sum为0然后i定义为sum +=
def add(*args):
sum = 0
for i in args:
sum += i
return sum
感谢帮助!
*args
让我们将未定义数量的参数作为元组发送。在函数的开头,你要求和的地方,明明是0,然后你更新值。
你也可以把sum+=i
写成:
sum=sum+i
我们来做一个小例子,你这样做:
add(1,2,3)
看起来像:
- 你输入函数,sum为0。
- 您对 args (1,2,3) 的每个元素进行迭代。
Iteration 1: sum=0, i =1, sum=sum+i = 1
Iteration 2: sum=1 (updated last iteration doing 0+1) and i 2, we have sum=sum+i=3
Iteration 3 is 3+3 = 6
使用*args
有什么好处?
无需修改函数即可发送任意数量的元素。
当至少有一个参数时,我们希望以下内容为真:
add(x1, x2, ..., xn) == x1 + add(x2, ..., xn)
不过,最终我们遇到了这种情况:
add(x1) == x1 + add()
什么应该 add
return 没有参数?由于 add(x1)
显然应该等于 x1
,因此我们必须定义 add() == 0
。这是因为 0 是加法的 标识 : x + 0 == x
对于 x
的任何值。
因为你的循环在没有参数的情况下根本不会进入,所以我们需要初始化sum = 0
,这样我们跳过循环后,return sum
会return0
根据需要。
循环本身只是将数字一个接一个地相加。如果 args
是 1,2,3,4 那么函数等价于
sum = 0
sum += 1 # 0 + 1 == 1
sum += 2 # 1 + 2 == 3
sum += 3 # 3 + 3 == 6
sum += 4 # 6 + 4 == 10
return sum # return 10