2014-04-16 58 views
-1

正如你可以看到手表,l[u][0]必须0.5,但它返回0错误除以蟒蛇

u = 0 
for j in range(n): 
    if k == j: 
     continue 
    l[u][0] = -x[j]/(x[k] - x[j]) 
    l[u][1] = 1/(x[k] - x[j]) 
    u = u + 1 

screenshot

这有什么错呢?

+4

整数除法。此外,请花时间将代码键入(或复制)到您的问题中,而不是将某些图像与代码内部链接起来。 –

+2

值得注意的是,在python3上,'1/2'默认情况下默认为'0.5',如果没有明确铸造 – shaktimaan

回答

4

该部门并非“错误”。它是整数分区(又名地板分区)。

当计算两个整数的,其结果是一个整数:

>>> 3/4 
0 
>>> 4/4 
1 

当分隔两个浮点数(带有小数部分数),其结果是浮动:

>>> 3./4 
0.75 
>>> 4./4 
1.0 

请注意,这个“问题”被限制到Python 2.变化之一在Python 3是进行正常的分裂裹胁到浮动:

>>> 3/4 # Python 3 behavior 
0.75 

并要求第二运营商(也在Python> 2.2)来实现整数除法:

>>> 3//4 
0 
+3

'from __future__ import division',将会启用2.2+中的新行为。 –

+0

@ChrisWesseling好点。应该提到那个! –