python 用列表附加语法错误

May*_*hem 0 python syntax append syntax-error python-2.7

我的目标是创建一个名为残差的列表,它返回一个列表,其中每个元素的绝对值减去平均值,我还在最后返回数据,因为这是我正在使用的列表。我已经走到这一步了,但是遇到了语法错误residuals.append(new_number)

data = [92.5, 87.7, 74.8, 93., 91.7, 90.0, 90.3, 92.5, 100.0, 
  100.0, 35.7, 37.4, 21.0]

def residuals(number):
    residuals = []
    for element in number:
        new_number = abs(element - float(avg(number))
        residuals.append(new_number)
        print residuals
residuals(data)
Run Code Online (Sandbox Code Playgroud)

zwo*_*wol 5

我想分享一种方法来确定您何时犯了这个特殊的拼写错误,我相信这是我从 Clark Weissman 的Lisp 1.5 Primer (PDF) 中学到的。你逐个字符地读了括号数量错误的表达式,并数着。每到一处就(加一,每到一处)就减一。当你到达终点时,你的计数应该为零。

    new_number = abs(element - float(avg(number))
                    1               2   3      21
Run Code Online (Sandbox Code Playgroud)

在这里,末尾的计数大于零,因此我们知道缺少一个右括号。如果它小于零,我们就会知道我们遗漏了一个左括号。请注意,它不会告诉在哪里添加括号。在像这样的建筑中

 x = foo(a, bar(b, baz(c, d), e)
        1      2      3    2   1
Run Code Online (Sandbox Code Playgroud)

缺少的右括号可能属于bcde,并且我们必须了解有关被调用函数的一些信息才能分辨出哪个。