鱼C论坛

 找回密码
 立即注册
查看: 2796|回复: 6

python代码求助

[复制链接]
发表于 2021-9-5 15:06:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
小甲鱼给的参考答案:
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 ,
还有我写的不太对好像
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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 参数,参数的值具体是多少,这些都不需要我们关心,所有的判断完全是自动进行的。我们只需要在调用函数的时候,遵守这个规则就可以了。
         
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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)
    
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

楼上说的也没问题    题目描述太简短了
楼主就看看元组取最后一个元素那一步吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

取最后一个元素的时候可以用  最后一个元素可以用-1来代替呀,谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-6 23:23:43 | 显示全部楼层
jackz007 发表于 2021-9-5 15:28
最后那个参数 base 是函数的命名可选参数,如果给定,在调用函数的时候,需要特别使用 base = 来给 ...

奥!我好像突然读懂题目了!!第二个条件其实就是想说 base是可以自己设置的,对吧,并不是说最后一个参数是 ‘5’,  然后base = 5 。谢大佬~
另外想问一下,为什么
def mFun (*param, base = 3):
param 前要加* ?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

我忽然看懂第二个条件了,第二个并不让判断最后一个数字是不是5, 而是想表达最后 base = 5  , 基数就是5不是3 这个意思。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-7 14:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表