编写一个符合以下要求的函数
1)、计算打印所有参数的和乘以基数(base=3)的结果2)、如果参数中的最后一个参数为(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) 怎么没有满足呢? qiuyouzhi 发表于 2020-7-7 11:50
怎么没有满足呢?
运行程序结果是75,(1+2+3+4+5)乘以5=75,基数参与了求和运算 A.Lyapunov 发表于 2020-7-7 12:01
运行程序结果是75,(1+2+3+4+5)乘以5=75,基数参与了求和运算
可那个5是传入的参数,必须要参与求和
基数参与了求和运算是1 + 2 + 3 + 4 + 5 + 5 对啊 @qiuyouzhi 好友我说你干嘛呢,原来在这里气死我了! A.Lyapunov 发表于 2020-7-7 12:01
运行程序结果是75,(1+2+3+4+5)乘以5=75,基数参与了求和运算
你是想达到这种效果?
def mFun(*param, base=3):
result = 0
param = list(param) # 转为列表,因为元组不可删减元素
if base == 5: #判断最后一个参数是否为 5
for i in param[:]:
if i == 5: # 若是则移除掉 5 不参与求和运算
param.remove(i)
for each in param:
result += each
result *= base
print('结果是:', result)
mFun(1, 2, 3, 4, 5, base=5) 7楼那个有问题 qiuyouzhi 发表于 2020-7-7 12:04
可那个5是传入的参数,必须要参与求和
基数参与了求和运算是1 + 2 + 3 + 4 + 5 + 5
如果是这样,那就是我误解了题目的意思...谢谢你 Twilight6 发表于 2020-7-7 12:10
你是想达到这种效果?
如果参数5不是最后一个参数,也会移除把 A.Lyapunov 发表于 2020-7-7 12:18
如果参数5不是最后一个参数,也会移除把
是的
P.S: 如果问题解决了,请设置【最佳答案】 def Mfun(*param,base = 3):
result = 0
param = list(param)
if param[-1] == 5:
param.pop()
for each in param:
result += each
result *=base
print('结果是:',result)
Mfun(1,2,3,4,5,base = 5)
A.Lyapunov 发表于 2020-7-7 12:18
如果参数5不是最后一个参数,也会移除把
不会if 第一个判断 就是 是否为 5 啊 A.Lyapunov 发表于 2020-7-7 12:22
这里的最后一个参数是值 base不是指 param 陈尚涵 发表于 2020-7-7 12:07
@qiuyouzhi 好友我说你干嘛呢,原来在这里气死我了!
....... Twilight6 发表于 2020-7-7 12:22
不会if 第一个判断 就是 是否为 5 啊
会移除,我刚刚试了一下 Twilight6 发表于 2020-7-7 12:24
这里的最后一个参数是值 base不是指 param
谢谢你,刚刚那位老兄解答了,是我理解错了题目 A.Lyapunov 发表于 2020-7-7 12:29
会移除,我刚刚试了一下
移除了所有的5,当最后一个参数 base 等于 5 的时候 , 是你没理解我代码的意思哈~
你是拿课后答案来反推题目了,题目的意思是告诉你 base 不参与 求和,而不是当 base = 5 时候最后参数 base 不参与求和
Twilight6 发表于 2020-7-7 12:30
移除了所有的5,当最后一个参数 base 等于 5 的时候 , 是你没理解我代码的意思哈~
你是拿课后 ...
好像是的,我的思路没有跟着题目的要求走,也没有理解你代码的意思。谢谢!
页:
[1]