|
10鱼币
编写一个符合以下要求的函数:
a) 计算打印所有参数的和乘以基数(base=3)的结果
b) 如果参数中最后一个参数为(base=5),则设定基数为5,基数不参与求和计算。
小女子不才,按偶的理解,上题应该系这样的:
如果向*param传入的参数中,最后一个不为5,则BASE=3, RESULT += EACH, RESULT *= BASE(即3)
但如果向*param传入的参数中,最后一个为5, 则BASE=5(即PARAM[-1],并且不参与求和计算),
则RESULT应 += EACH , 再-5,然后*BASE(即5)
鱼哥的答案系:
def mFun(*param, base=3):
result = 0
for each in param:
result += each
result *= base
print('the result is:',result)
mFun(1,2,3,4,5,base=5) #结果为75,即5参与了求和计算
def mFun(*param, base=3):
result = 0
for each in param:
if param[-1] != 5:
result += each
else:
result += each
result =result - 5
base = 5
result *= base
print('the result is:',result)
mFun(1,2,3,4,5) #但偶这样写,结果更离谱,竟然系-50 怎么改才能实现期望值=(1+2+3+4)*5=50 呢????
求各位路过的大神,大牛指点指点,感谢感谢
|
最佳答案
查看完整内容
#你的哦错误是在for循环里当最后一个参数是5时就会每次都减去5这样就变成-50了。
#呵呵!
|