blackfame 发表于 2020-8-10 10:01:14

18讲课后题问题

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)


上面这个代码是不是不对啊?

def mFun(*param, base=3):
    result = 0
    i = len(param)
    if param == 5:
      base = 5
      for each in param:
            result += each
      result -= 5
      result *= base
      print('结果是:',result)
      print('base是:',base)
    else:
      for each in param:
            result += each
      result *= base
      print('结果是:', result)
      print('base是:', base)


这样写对吗?

zltzlt 发表于 2020-8-10 10:06:23

小甲鱼的代码是对的,你这样写不太对,param 不一定等于 base

sunrise085 发表于 2020-8-10 10:07:27

base是关键字参数,你这样写是不对的。

blackfame 发表于 2020-8-10 10:12:27

zltzlt 发表于 2020-8-10 10:06
小甲鱼的代码是对的,你这样写不太对,param 不一定等于 base

b) 如果参数中最后一个参数为(base=5),则设定基数为5,基数不参与求和计算。

我以为这句话的意思是 给的数据里最后一位是5的将5设定为基数5,不参与计算

zltzlt 发表于 2020-8-10 10:13:47

blackfame 发表于 2020-8-10 10:12
b) 如果参数中最后一个参数为(base=5),则设定基数为5,基数不参与求和计算。

我以为这句话的意思是 ...

这道题很具有误导性,题目的意思是设定一个默认值为 3 的参数 base

blackfame 发表于 2020-8-10 10:30:47

zltzlt 发表于 2020-8-10 10:13
这道题很具有误导性,题目的意思是设定一个默认值为 3 的参数 base

{:5_91:}理解错了,我以为是默认值是3,如果最后一位是5的话,默认值就变成5了
页: [1]
查看完整版本: 18讲课后题问题