Python3:这两个关于整数除法的计算之间的区别是什么

时间:2018-08-05 15:00:42

标签: python-3.x

这是我的代码

a = [10,10,20]
b = [2,5,4]
print(sum(a) / sum(b))
print(sum([i/j for i,j in zip(a,b)])/3)

输出为

3.6363636363636362
4.0

我的问题是:如何正确进行第一个计算。为什么会有这样的差异?

谢谢。

2 个答案:

答案 0 :(得分:3)

第一个是(10+10+20)/(2+5+4) = 40/11 = 3.6363

第二个是(10/2 + 10/5 + 20/4)/3 = (5 + 2 + 5)/3=4

这是两个不同的计算。没有理由认为应该没有任何区别。

答案 1 :(得分:0)

计算没有问题。 在第一种情况下,即

(print(sum(a)/ sum(b)))

您首先要添加分子,然后分别添加分母,然后除以它们 让[a,b,c]和[d,e,f]成为您的列表元素,在第一种情况下,您正在做

(a+b+c)/(d+e+f)

在第二种情况下,您正在做

a/d + b/e + c/f

,然后除以3 这就是为什么您会有两个不同的答案