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

为什么line7 报错 float division by zero?

def average(*args):
    sum = 0.
    n = 0
    if args == 0:
        return sum
    for num in args:
        sum += num
        n += 1
    return sum/n

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


正在回答

3 回答

args是个tuple,应该判断len(args)==0,args==0是个啥

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

def average(*args):

    if len(args) > 0:

        return sum(args) * 1.0 / len(args)

    else:

        return 0.0

除数不能为0, 参数为空的情况 除数 n 为 0

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

def average(*args):
    sum = 0.
    n = 0
    if len(args) == 0:
        return sum
    for num in args:
        sum += num
        n += 1
    return sum/n
print average()  
print average(1, 2)
print average(1, 2, 2, 3, 4)

可变参数 args 是一个tuple,当0个参数传入时,args是一个空tuple。

所以print average()  时会报错

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

举报

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

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

进入课程

为什么line7 报错 float division by zero?

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