unindent unexpected traduccion significa que outer not indented indentationerror indent expected error does python indentation

python - significa - unexpected indent traduccion



IndentationError: inesperado unindent ¿POR QUÉ? (3)

Es porque tienes:

def readTTable(fname): try:

sin un emparejamiento except bloque después del try: bloque. Cada try debe tener al menos una coincidencia except .

Consulte la sección Errores y excepciones del tutorial de Python.

IndentationError: inesperado unindent ¿POR QUÉ?

#!/usr/bin/python import sys class Seq: def __init__(self, id, adnseq, colen): self.id = id self.dna = adnseq self.cdnlen = colen self.prot = "" def __str__(self): return ">%s/n%s/n" % (self.id, self.prot) def translate(self, transtable): self.prot = "" for i in range(0,len(self.dna),self.cdnlen): codon = self.dna[i:i+self.cdnlen] aa = transtable[codon] self.prot += aa def parseCommandOptions(cmdargs): tfname = cmdargs[1] sfname = cmdargs[2] return (tfname, sfname) def readTTable(fname): try: ttable = {} cdnlen = -1 tfile = open(fname, "r") for line in tfile: linearr = line.split() codon = linearr[0] cdnlen = len(codon) aa = linearr[1] ttable[codon] = aa tfile.close() return (ttable, cdnlen) def translateSData(sfname, cdnlen, ttable): try: sequences = [] seqf = open(seq_fname, "r") line = seqf.readline() while line: if line[0] == ">": id = line[1:len(line)].strip() seq = "" line = seqf.readline() while line and line[0] != ''>'': seq += line.strip() line = seqf.readline() sequence = Seq(id, seq, cdnlen) sequence.translate(ttable) sequences.append(sequence) seqf.close() return sequences if __name__ == "__main__": (trans_table_fname, seq_fname) = parseCommandOptions(sys.argv) (transtable, colen) = readTTable(trans_table_fname) seqs = translateSData(seq_fname, colen, transtable) for s in seqs: print s

Dice:

def translateSeqData(sfname, cdnlen, ttable): ^ IndentationError: unexpected unindent

¿POR QUÉ? He comprobado miles de veces y no puedo encontrar el problema. Solo he usado pestañas y no espacios. Además, a veces pide definir la clase. ¿Eso esta bien?


Este error podría estar en el código anterior al que se informa el error. Consulte Por ejemplo, si tiene un error de sintaxis como se muestra a continuación, obtendrá el error de sangría. El error de sintaxis está en realidad al lado de "excepto" porque debe contener un ":" justo después de él.

try: #do something except print ''error/exception'' def printError(e): print e

Si cambia "excepto" arriba a "excepto:", el error desaparecerá.

Buena suerte.


no completaste tu declaración de try Usted necesita y except allí también.