鱼C论坛

 找回密码
 立即注册
查看: 1789|回复: 3

[已解决]关于sum()的问题

[复制链接]
发表于 2017-7-22 20:02:26 | 显示全部楼层 |阅读模式

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

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

x
问题1:
sum()函数如果在IDLE里面直接输入例如
sum(2,3)就会报错
原因是sum()函数的参数 必须是个列表或者元组吗??


问题2:
与问题1相关,在零基础python课程18课的作业看到的,
要求定义一个函数,使得:
(a)计算所有参数的和乘以基数(base=3)的结果
(b)如果参数中最后一个参数是5,则设定基数为5(base=5),基数不参与求和运算。
代码如下:
  1. def Fun(*x, base = 3):
  2.     result = sum(x)
  3.     result = result * base
  4.     return result
复制代码


比较困惑的地方是: 这里是sum(x) ,为啥不是sum((x))
和问题1一样,sum()函数的参数 必须是个列表或者元组对嘛??
如果必须是个列表或者元组的话,这里定义了函数Fun()之后,输入比如Fun(2,3)之后,为啥不会报错呢??
最佳答案
2017-7-22 20:23:23
1,sum(iterable, start=0, /) 看看sum的说明,参数1是一个可迭代的类型,比如说 list;参数2是 可迭代对象里面的数相加的值 + start的值
>>> a=[1,2,3,4,5,6,7,8,9,10]
>>> sum(a,3) #1+2+3+4+5+6+7+8+9+10+3
58
2,(a)计算所有参数的和乘以基数(base=3)的结果
我想应该是
>>> a=[1,2,3,4,5,6,7,8,9,10]
>>> sum(a,3) #(1+2+3+4+5+6+7+8+9+10)*3 这里的3就是基数
3,(b)如果参数中最后一个参数是5,则设定基数为5(base=5),基数不参与求和运算。
>>> a=[1,2,3,4,5]
>>> sum(a) #(1+2+3+4)*5
4,这里定义了函数Fun()之后,输入比如Fun(2,3)之后,为啥不会报错呢??
def Fun(*x, base = 3):
http://www.cnblogs.com/tips4python/archive/2011/05/30/function_with_stay.html
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-7-22 20:23:23 | 显示全部楼层    本楼为最佳答案   
1,sum(iterable, start=0, /) 看看sum的说明,参数1是一个可迭代的类型,比如说 list;参数2是 可迭代对象里面的数相加的值 + start的值
>>> a=[1,2,3,4,5,6,7,8,9,10]
>>> sum(a,3) #1+2+3+4+5+6+7+8+9+10+3
58
2,(a)计算所有参数的和乘以基数(base=3)的结果
我想应该是
>>> a=[1,2,3,4,5,6,7,8,9,10]
>>> sum(a,3) #(1+2+3+4+5+6+7+8+9+10)*3 这里的3就是基数
3,(b)如果参数中最后一个参数是5,则设定基数为5(base=5),基数不参与求和运算。
>>> a=[1,2,3,4,5]
>>> sum(a) #(1+2+3+4)*5
4,这里定义了函数Fun()之后,输入比如Fun(2,3)之后,为啥不会报错呢??
def Fun(*x, base = 3):
http://www.cnblogs.com/tips4python/archive/2011/05/30/function_with_stay.html
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2017-7-22 22:24:36 | 显示全部楼层
ba21 发表于 2017-7-22 20:23
1,sum(iterable, start=0, /) 看看sum的说明,参数1是一个可迭代的类型,比如说 list;参数2是 可迭代对象 ...

灰常灰常感谢您具体详细的回答,我大概明白啦!
问题一,参数1必须是一个可迭代的类型,也是就序列(列表,字符串,元组)吧。参数2我理解的,可加可不加是吧。

问题二,看了您给的链接,  “带一个星号(*)参数的函数传入的参数存储为一个元组(tuple)”
所以 输入fun(2,3), 程序会讲(2,3)变为一个元组,传入sum()内吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-23 09:40:20 | 显示全部楼层
装辣椒 发表于 2017-7-22 22:24
灰常灰常感谢您具体详细的回答,我大概明白啦!
问题一,参数1必须是一个可迭代的类型,也是就序列(列 ...

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-28 22:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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