python代码求助
小甲鱼给的参考答案:def mFun(*param,base = 3):
result = 0
for each in param:
result += each
result *= base
print('结果是:',result)
我的代码:
def mFun(param):
result=0
for each in param:
reslut += each
#判断最后一个数字是不是5,但是我不会,我直接判断的是列表中有没有5
if '5' in param:
result *= 3
else:
result *= 5
print('结果是:',result)
题目是:
1.计算打印所有参数的和乘以基数(base = 3)的结果
2.如果参数中最后一个参数为 (base = 5),则设定基数为5, 基数不参与求和计算。
疑问:我觉得小甲鱼给的代码里没有条件判断最后一个参数是不是5 啊,
有没有大神可以告诉我怎么判断最后一个数字是不是5 ,
还有我写的不太对好像
本帖最后由 jackz007 于 2021-9-5 15:50 编辑
最后那个参数 base 是函数的命名可选参数,如果给定,在调用函数的时候,需要特别使用 base = 来给定,如果缺省,这个参数就不用写。
>>> def mFun(*param,base = 3):
result = 0
for each in param:
result += each
result *= base
print('结果是:',result)
>>> mFun(1,2,3,4,5,6)
结果是: 63
>>> mFun(1,2,3,4,5,6,base=5)
结果是: 105
>>>
也就是说,调用函数的时候,是否指定了 base 参数,参数的值具体是多少,这些都不需要我们关心,所有的判断完全是自动进行的。我们只需要在调用函数的时候,遵守这个规则就可以了。
本帖最后由 YaoShi 于 2021-9-6 11:32 编辑
楼上忽略了题目第二点要求 按题目描述 只要应该是输入一串数字就行了
参考答案我也没看出来(代码没有少贴吗)
下面我就按自己的理解简单写了一下
def mFun(*param,base = 3):
result = 0
if param[-1] == 5:#判断最后一个数字是否为5
base = 5
for each in param:
result += each
result *= base
print('结果是:',result)
if __name__=='__main__':
mFun(1,2,3,5)
YaoShi 发表于 2021-9-6 11:21
楼上忽略了题目第二点要求 按题目描述 只要应该是输入一串数字就行了
参考答案我也没看出来(代码没有少 ...
楼上说的也没问题 题目描述太简短了
楼主就看看元组取最后一个元素那一步吧 YaoShi 发表于 2021-9-6 11:36
楼上说的也没问题 题目描述太简短了
楼主就看看元组取最后一个元素那一步吧
取最后一个元素的时候可以用最后一个元素可以用-1来代替呀,谢! jackz007 发表于 2021-9-5 15:28
最后那个参数 base 是函数的命名可选参数,如果给定,在调用函数的时候,需要特别使用 base = 来给 ...
奥!我好像突然读懂题目了!!第二个条件其实就是想说 base是可以自己设置的,对吧,并不是说最后一个参数是 ‘5’,然后base = 5 。谢大佬~
另外想问一下,为什么
def mFun (*param, base = 3):
param 前要加* ? YaoShi 发表于 2021-9-6 11:36
楼上说的也没问题 题目描述太简短了
楼主就看看元组取最后一个元素那一步吧
我忽然看懂第二个条件了,第二个并不让判断最后一个数字是不是5, 而是想表达最后 base = 5, 基数就是5不是3 这个意思。
页:
[1]