fazerse 发表于 2020-8-14 06:13:12

第18讲课后题,值得深入研究探讨,欢迎拍砖

18课动手第0 题, 题目:0. 编写一个符合以下要求的函数:
    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)

然后这里面,我以为 题干是要求后面的关键字参数值是动态随动的, 也就是 *param的最后一位值是几,最后result就要去乘以几。   

结果我就做了,defmFun(*param, base=param.pop()):       结果必然是报错。但是问题来了。 在设定函数变量时, 如何能够取到收集参数的末位值,作为

后续关键字参数的值?   目测也没法 在 设定函数 时,先把 收集参数定义个列表吧?

zltzlt 发表于 2020-8-14 06:13:49

这样只能在函数内部获取了

永恒的蓝色梦想 发表于 2020-8-14 08:56:44

def func(*arg, base=3):
    return sum(arg) * base
页: [1]
查看完整版本: 第18讲课后题,值得深入研究探讨,欢迎拍砖