2014-04-16 43 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好點。應該提到那個! –