从观看中可以看出,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
它出了什么问题?
答案 0 :(得分:4)
分裂并非“错误”。它是整数除法(a.k.a. floor division)。
当你除以两个整数时,结果是一个整数:
>>> 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