以下python代码有什么问题?

时间:2017-04-13 05:23:36

标签: python

我有一个代码,它应该实现拉格朗日插值。运行此代码会产生缩进错误,我无法弄清楚它来自哪里。任何人都可以帮我解释一下这个错误的来源,以及解决它的潜在方法吗?

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 

2 个答案:

答案 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 

`