zmq 发表于 2020-8-10 20:28:52

018

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)

这道题不是太明白,如果最后mfun中写有base=5,那def mfun中还要定义base=3 干嘛?如果只写默认参数base就可以了。不用谢base=3, 而且就是写了也不符合a里面乘以基数3的要求呀?

Twilight6 发表于 2020-8-10 20:30:13



甲鱼哥这里测试调用时候是测试设置 base = 5 的情况,而在这之前默认值都是为 3

如果你没用设置默认值,那么 a 题意就不满足了,而甲鱼哥测试代码只写了 b 题的测试而已

qiuyouzhi 发表于 2020-8-10 20:30:35

1,这样做的意义是如果不设置base的值的话,让它默认为3。
2,怎么不符合呢?
假设param为(1,2,3,4,5), base为3,
那么结果就应该是(1 + 2 + 3 + 4 + 5) * 3

一抹心尘 发表于 2020-10-29 18:24:56

因为小甲鱼这里在测试调用时候,是用测试设置 base = 5 的情况,你如果不改,前面的base的默认值是3,那这不是起冲突了吗?

写了符合啊,哪里不符合要求,你的要求是乘以基数3,然后,我把代码运行了一下,结果是

(1 + 2 + 3 + 4 + 5) * 3   只要它前面的param为(1,2,3,4,5), base为3,就完全没有问题,你再看看是不是这样。
页: [1]
查看完整版本: 018