鱼C论坛

 找回密码
 立即注册
查看: 2957|回复: 8

018讲动动手第一题

[复制链接]
发表于 2016-11-5 16:58:07 | 显示全部楼层 |阅读模式
2鱼币
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)

首先,*param中的“*”是什么作用,
其次,为什么运行程序后还是会把基数5给加进去,是我理解问题有误么,请广大鱼油帮我解答一下
QQ截图20161105165455.jpg

最佳答案

查看完整内容

分享一下我的理解,如果满意,请选择为最佳答案,给个技术值; 首先,*param中的“*”是什么作用 答案:当函数的参数数量不确定时,在定义函数的时候可以使用收集参数,即在形参前面加一个“ * ”,其实是表示该参数变量是一个元组类型,传入的实参会以元组形式复制为形参变量,*param是一个特定表达方式; 其次,为什么运行程序后还是会把基数5给加进去,是我理解问题有误么, 答案: mFun(1, 2, 3, 4, 5, base=5),重新一定 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-11-5 16:58:08 | 显示全部楼层
本帖最后由 人zai旅途 于 2016-11-6 00:50 编辑

分享一下我的理解,如果满意,请选择为最佳答案,给个技术值;
首先,*param中的“*”是什么作用
答案:当函数的参数数量不确定时,在定义函数的时候可以使用收集参数,即在形参前面加一个“ * ”,其实是表示该参数变量是一个元组类型,传入的实参会以元组形式复制为形参变量,*param是一个特定表达方式;
其次,为什么运行程序后还是会把基数5给加进去,是我理解问题有误么,
答案
mFun(1, 2, 3, 4, 5, base=5),重新一定base=5以后,收集参数部分result=1+2+3+4+5=15,
最后result *= base,result =15*5=75
mfun(1,2,3,4,5),默认base=3,结果为15*3=45;
根据函数定义过程,base本来就不属于收集参数,不参与求和计算的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-11-5 19:52:33 | 显示全部楼层
  *的作用是把所有的位置参数收集成一个元组
算出的结果就是75,没问题啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-11-5 23:11:57 | 显示全部楼层
kox 发表于 2016-11-5 19:52
*的作用是把所有的位置参数收集成一个元组
算出的结果就是75,没问题啊


最后一个参数为(base=5),基数不参与求和计算,5应该不是不能算到求和里的么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-11-12 20:10:47 | 显示全部楼层
*是可以输入很多个值的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-11-15 11:03:40 | 显示全部楼层
无言
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-11-15 11:04:25 | 显示全部楼层
两次无言
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-1-11 01:52:12 | 显示全部楼层
根据题意 我感觉是这样的:
def mFun(*params,base = 3):
    list1 = list(params)
    last = list1.pop()
    list1.append(last)
    result = 0
   
    if last != 5:
        for each in list1:
            result += each

        result *= base

    elif last == 5:
        list1.pop()
        for each in list1:
            result += each

        result *= 5

    return result
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-22 13:38:07 From FishC Mobile | 显示全部楼层
头大一个礼拜,我是弱智
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-21 04:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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