为了账号安全,请及时绑定邮箱和手机立即绑定

为什么不能引入自带的sum 函数???

求大神解答

import math

def average(*args):

    if len(args) == 0:

        return 

    x = math.sum(args)

    y = x / len(args)

    return y

print average()

print average(1, 2)

print average(1, 2, 2, 3, 4)


正在回答

7 回答

def average(*args):
    import math
    if len(args) == 0:
        y = 0.0
    else:
        a = iter(args)
        y = sum(a)/len(args)
    return y
print(average())
print(average(1, 2))
print(average(1, 2, 2, 3, 4))

我这样好像能成功了

1 回复 有任何疑惑可以回复我~

#coding=utf-8

def average(*args):

    sum=0.0 #用于条件

    if len(args) == 0: #第一个小条件args为空

        return sum

    for x in args: #这里指不为空有东西时的运算

        sum=sum+x

    return sum/len(args)#由于for是一个有限的计算过程所以需要return强制终结,就是当for已经运算到最后一个元素时就可以用return得出结果



print average()

print average(1, 2)

print average(1, 2, 2, 3, 4)


0 回复 有任何疑惑可以回复我~

把sum(args)变为浮点型就可以了,可以在sum(args)后乘1.0

0 回复 有任何疑惑可以回复我~
#1

LLY123

还有上面的y=0也是,改为y=0.0
2018-07-16 回复 有任何疑惑可以回复我~

def average(*args):

    import math

    if len(args) == 0:

        y = 0

    else:

        y = sum(args)/len(args)

    return y

print average()

print average(1, 2)

print average(1, 2, 2, 3, 4)

运行成功了但是好像结果不对,有没有大佬帮帮我昂0 -0

0 回复 有任何疑惑可以回复我~

还是不对啊 sum有默认参数了啊

def average(*args):

    import math

    if len(args) == 0:

        y = 0

    else:

    y = (math.sum(args)) / len(args)

    return y

print average()

print average(1, 2)

print average(1, 2, 2, 3, 4)


0 回复 有任何疑惑可以回复我~
#1

慕粉13358287708 提问者

缩进已修改
2018-07-13 回复 有任何疑惑可以回复我~

好像是有sum 但是没有规定迭代数量


0 回复 有任何疑惑可以回复我~

打扰了 内置没有sum

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758625    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

为什么不能引入自带的sum 函数???

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信