鱼C论坛

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

[已解决]python 函数问题

[复制链接]
发表于 2022-8-6 19:17:37 | 显示全部楼层 |阅读模式

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

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

x
  编写函数,计算列表中所有奇数位索引所对应的元素的和。然后调用该函数来计算输入的列表中所有奇数位索引所对应的元素的和。
def summ(l):
    s=0
    for i in range(len(l)):
        if i%2!=0:
            s=s+l[i]
    return s
l=eval(input())
print(summ(l))

问题:输入的是列表,为什么不写成 def summ(*l)?
最佳答案
2022-8-7 00:26:42

举个例子
def func1(*l):
    pass
def func2(l):
    pass

func1(1,2,3,4)
func2([1,2,3,4])
func1函数传入的是4个实参,而func2函数传入的是一个实参
*是为了把实参组合在一起,而func2函数只有一个实参,你怎么将它们组合在一起
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-8-6 19:31:23 | 显示全部楼层
*l是C语言的写法,代表这是一个指针
而python中都是对象,所以不用写成*l,只用写l就可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-6 19:56:05 | 显示全部楼层
临时号 发表于 2022-8-6 19:31
*l是C语言的写法,代表这是一个指针
而python中都是对象,所以不用写成*l,只用写l就可以了

python 写函数的时候,加*不是为了把实参组合在一起吗,这里是列表啊,为啥不写
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-6 20:01:35 | 显示全部楼层
努力学Python的 发表于 2022-8-6 19:56
python 写函数的时候,加*不是为了把实参组合在一起吗,这里是列表啊,为啥不写

这里不需要把实参组合在一起啊,l是一个整体,是一个对象,我传入一个整体,当然不需要把它们组合在一起啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-6 22:48:06 | 显示全部楼层
临时号 发表于 2022-8-6 20:01
这里不需要把实参组合在一起啊,l是一个整体,是一个对象,我传入一个整体,当然不需要把它们组合在一起啊

为啥
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-7 00:26:42 | 显示全部楼层    本楼为最佳答案   

举个例子
def func1(*l):
    pass
def func2(l):
    pass

func1(1,2,3,4)
func2([1,2,3,4])
func1函数传入的是4个实参,而func2函数传入的是一个实参
*是为了把实参组合在一起,而func2函数只有一个实参,你怎么将它们组合在一起
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-7 11:48:35 | 显示全部楼层
临时号 发表于 2022-8-7 00:26
举个例子

func1函数传入的是4个实参,而func2函数传入的是一个实参

哦哦,是这样啊,我以为把实参组合在一起就要是,输入的是列表类型什么的,恍然大悟
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-26 08:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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