我有一个代码,它应该实现拉格朗日插值。运行此代码会产生缩进错误,我无法弄清楚它来自哪里。任何人都可以帮我解释一下这个错误的来源,以及解决它的潜在方法吗?
points =[(0,0),(25,30),(50,10), (57,0)]
P = lagrange(points, 10)
print (P)
def lagrange(f, x):
total = 0
n = len(f)
for i in xrange(n):
xi, yi = f[i]
def g(i, n):
g_tot = 1
for j in xrange(n):
if i == j:
continue
xj, yj = f[j]
g_tot *= (x - xj) / float(xi - xj)
return g_tot
total += yi * g(i, n)
return total
答案 0 :(得分:0)
"意外缩进"直接在python编辑器中键入上面的代码时出现问题。直接运行文件时没关系。 (例如python lagrange.py
)
要解决缩进问题,只需删除程序中的空白行即可。或者确保每个空行都有预期的空格数,以便继续或关闭当前的代码块。
答案 1 :(得分:-2)
Python使用空格来识别代码块。
points = [(0,0),(25,30),(50,10),(57,0)] P =拉格朗日(分数,10) print(P)
def lagrange(f, x):
total = 0
n = len(f)
for i in xrange(n):
xi, yi = f[i]
def g(i, n):
g_tot = 1
for j in xrange(n):
if i == j:
continue
xj, yj = f[j]
g_tot *= (x - xj) / float(xi - xj)
return g_tot
total += yi * g(i, n)
return total
`