Python 命令提示符中的制表符/缩进错误



Python新手,参加一门课程,老师提供了一个代码片段。提供的片段给了我一个 TabError,如下所示,但我似乎无法弄清楚原因。我希望这里有人能指出这个问题。

收到的错误:收到错误

发生错误的代码(更新为具有代码行而不是屏幕截图):

def filterResultsAcc(self, qcoverage=0.6, scoverage=0.6, evalue=0.01, best_taxon=False):
    results = []
    hits_by_taxon = {}
    for(qstart,qend,sacc,staxid,slen,sstart,send,evalu) in self.blasthits:
        qcov = ((qend-qstart) + 1.0) / float(self.querylen)
        scov = ((send-sstart) + 1.0 / float(slen)
        if qcov >= qcoverage and scov >= scoverage and evalu <= evalue:
            if best_taxon:
                if staxid in hits_by_taxon.keys():
                    (sid,e,qc,sc) = hits_by_taxon[staxid]
                    if evalu < e:
                        hits_by_taxon[staxid] = (sacc,evalu,qcov,scov)
                    elif evalu == e:
                        if qcov > qc:
                            hits_by_taxon[staxid] = (sacc,evalu,qcov,scov)
                        elif qvoc == qc:
                            if scov > sc:
                                hits_by_taxon[staxid] = (sacc,evalu,qcov,scov)
                else:
                    hits_by_taxon[staxid] = (sacc,evalu,qcov,scov)
            else:
                results.append(sacc)
        if best_taxon:
            for taxid in hits_by_taxon.keys():
                (sac,e,qc,sc) = hits_by_taxon[taxid]
                results.append(sacc)
                results.sort()
    return results

该错误显示您混合了tab和空格,就像它所说的那样。

如果您的编辑器支持它 - 请转动类似"显示不可打印字符"的内容以查看您的空格到底是什么。

另一种方法是选择所有代码,通常编辑器会区分空格和制表符。

最新更新