缩进错误:意外的不缩进为什么???
#!/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
上面写着:
def translateSeqData(sfname, cdnlen, ttable):
^
IndentationError: unexpected unindent
为什么?我查了几千遍,找不到问题。我只使用标签,没有空格。另外,有时它要求定义类。可以吗?
因为你有:
在
try:
块之后没有匹配的except
块。每个try
必须至少有一个匹配的except
。请参阅Python教程的Errors and Exceptions部分。
您没有完成
try
语句。你也需要except
在里面。此错误实际上可能位于报告错误的前一代码中。请参见示例,如果出现如下语法错误,则将得到缩进错误。语法错误实际上在“except”旁边,因为它后面应该包含“:”。
如果将上面的“except”更改为“except:”,则错误将消失。
祝你好运。
相关问题 更多 >
编程相关推荐