IndentationError: nieoczekiwany nieuzasadniony DLACZEGO?
IndentationError: nieoczekiwany nieoczekiwany DLACZEGO ???
<code>#!/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 </code>
To mówi:
<code> def translateSeqData(sfname, cdnlen, ttable): ^ IndentationError: unexpected unindent </code>
CZEMU? Sprawdziłem tysiące razy i nie mogę znaleźć problemu. Użyłem tylko kart i spacji. Plus, czasami prosi o zdefiniowanie klasy. Czy to w porządku?