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

sum(args)为何要*1.0

def average(*args):

    if args:

        return sum(args)/len(args)

    else:

        return 0.0

print average()

print average(1, 2)

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

为什么sum(args)不乘以1.0,最后输出的结果就会是

0.0
1
2

乘以1.0输出的结果就是正确的?

正在回答

2 回答

sum(args)和len(args)都是整型,如果不转换成float,计算结果还是int,会影响结果的正确性。

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

忧郁的兔八哥 提问者

非常感谢!
2017-02-13 回复 有任何疑惑可以回复我~

整型(int)的计算结构只能是整数,你想要结果是小数就要让sum变成浮点型,乘1.0就是让sum变成float型,因为sum(int)乘1.0(float)结构就变成了float型

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

举报

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

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

进入课程

sum(args)为何要*1.0

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