看代码
编写一个符合以下要求的函数:a) 计算打印所有参数的和乘以基数(base=3)的结果
b) 如果参数中最后一个参数为(base=5),则设定基数为5,基数不参与求和计算。
def mFun(*param, base=3):
result = 0
for each in param:
result += each
result *= base
print('结果是:', result)
mFun(1, 2, 3, 4, 5, base=5 输出结果是75,怎么形成的呢
形参前面加*是一个收集参数,第一个参数是收集参数时,在不指定其他具体形参的情况下,传递的实参全部被收集参数接收,也就是param是,而指定具体参数名接受参数就是给具体的参数复制,例子中将base赋值为5,所有先算1加到5,然后这个结果乘5,就是75 *param收集参数param就是元组(1,2,3,4,5)
result = 0
for each in param:
result += each
使result是元组param的和,即收集参数各项的和
最后是简单的将自身乘以base(你设定的倍率)
塔利班 发表于 2018-11-30 22:06
*param收集参数param就是元组(1,2,3,4,5)
result = 0
for each in param:
result 第一次是0+1 第二次不应该是1+2以此类推最后result的结果不就是 1+1+2+1+2+3+1+2+3+4+1+2+3+4+5 吗? 爱学习的懒懒君 发表于 2018-11-30 22:02
形参前面加*是一个收集参数,第一个参数是收集参数时,在不指定其他具体形参的情况下,传递的实参全部被收 ...
result 第一次是0+1 第二次不应该是1+2以此类推最后result的结果不就是 1+1+2+1+2+3+1+2+3+4+1+2+3+4+5 吗? a2421480 发表于 2018-12-1 10:05
result 第一次是0+1 第二次不应该是1+2以此类推最后result的结果不就是 1+1+2+1+2+3+1+2+3+4+1+2+3+4 ...
1
1+2
1+2+3
1+2+3+4
1+2+3+4+5 塔利班 发表于 2018-12-1 10:06
1
1+2
1+2+3
为啥 不是 全部的和呢 a2421480 发表于 2018-12-1 10:09
为啥 不是 全部的和呢
for 下面不是接循环体吗
页:
[1]