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

return sum(args)/len(args)

def average(*args):

    if len(args)==0:

        return 0.0

    return sum(args)/len(args)

print average()

print average(1, 2)

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

结果是0.0
1
2

有人能解释一下吗,有些不懂

正在回答

5 回答

整形和整形运算结果结果是整形,用浮点数和整形相运算结果是浮点数

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

因为sum函数默认是0,所以在sum(args)/len(args)=3/2=1,而不是1.5,应该要是3.0/2=1.5

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

因为你的sum函数sum(args)是基于你的数据类型决定的。你的数据都是int,所以它结果sum(args)也是int型,除以int型的len(args)得到的结果就必然也是int型,而第一个输出代码0.0是由于你函数定义导致的。你可以尝试执行代码print average(0),print average(1,2.0),print average(1,2,2,3.0,4)试试。如果你要完成作业的话,最好还是采取定义变量sum为0.0然后累加的形式

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

第一个len(args) == 0,返回的是0.0

第二个sum(args)/len(args) ,为(1+2)/ 2 = 3 / 2 = 1

第三个sum(args)/len(args),为(1 + 2 + 2 + 3 + 4)  /  5 = 12 / 5 = 2

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

sum返回整型,除法运算自动把小数点后的部分截掉了

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

举报

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

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

进入课程

return sum(args)/len(args)

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