Python 仅在 python REPL 中出现未缩进错误,即使有正确的空格数(并且没有制表符)

Python unindent error only in python REPL even with correct # of spaces (and no tabs)

在下面的代码块中

def classify0(inx, ds, ls, k):
    sizeds = ds.shape[0]
    dmat = tile(inx, (sizeds, 1)) -ds
    sdmat = dmat**2
    sqdist = sdmat.sum(axis=1)
    dist = sqdist**2
    sdindices = dist.argsort()
    clcount = {}
    for i in range(k):
        vlab = ls[sdindices[i]]
        clcount[vlab] = clcount.get(vlab,0)+1
    sclcount = sorted(clcount.iteritems(), key=operator.itemgetter(1), reverse=True)
    # Previous lines gives: IndentationError: unindent does not match any outer indentation level
    return sclcount[0][0]

如评论中所示,以

开头的行
sclcount = "

给出缩进错误:

   sclcount = sorted(clcount.iteritems(), key=operator.itemgetter(1), reverse=True)
                                                                                    ^
IndentationError: unindent does not match any outer indentation level

现在我检查了所有 'usual suspects':没有制表符和正确的空格数。

此外,我正在使用 PyCharm (/intellij),没有 warnings/syntax 错误。仅在 python shell..

更新 ipython 中的 %cpaste(或 %paste)似乎解决了这个问题。

看起来 ipython 中的 %cpaste(或 %paste)解决了这个问题。