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)解决了这个问题。
在下面的代码块中
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)解决了这个问题。