L-茉遇 发表于 2021-9-5 15:06:25

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:28:27

本帖最后由 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:21:55

本帖最后由 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:36:21

YaoShi 发表于 2021-9-6 11:21
楼上忽略了题目第二点要求   按题目描述 只要应该是输入一串数字就行了
参考答案我也没看出来(代码没有少 ...

楼上说的也没问题    题目描述太简短了
楼主就看看元组取最后一个元素那一步吧

L-茉遇 发表于 2021-9-6 23:20:23

YaoShi 发表于 2021-9-6 11:36
楼上说的也没问题    题目描述太简短了
楼主就看看元组取最后一个元素那一步吧

取最后一个元素的时候可以用最后一个元素可以用-1来代替呀,谢!

L-茉遇 发表于 2021-9-6 23:23:43

jackz007 发表于 2021-9-5 15:28
最后那个参数 base 是函数的命名可选参数,如果给定,在调用函数的时候,需要特别使用 base = 来给 ...

奥!我好像突然读懂题目了!!第二个条件其实就是想说 base是可以自己设置的,对吧,并不是说最后一个参数是 ‘5’,然后base = 5 。谢大佬~
另外想问一下,为什么
def mFun (*param, base = 3):
param 前要加* ?

L-茉遇 发表于 2021-9-6 23:24:54

YaoShi 发表于 2021-9-6 11:36
楼上说的也没问题    题目描述太简短了
楼主就看看元组取最后一个元素那一步吧

我忽然看懂第二个条件了,第二个并不让判断最后一个数字是不是5, 而是想表达最后 base = 5, 基数就是5不是3 这个意思。
页: [1]
查看完整版本: python代码求助