Python2缩进错误
出于某种原因,我定义了这个python函数,它给了我一个缩进错误:Python2缩进错误,python,python-2.7,Python,Python 2.7,出于某种原因,我定义了这个python函数,它给了我一个缩进错误: print '-------------------------------------------------------------' 我不明白为什么 def seq_type(file_handle): is_DNA = True is_RNA = True is_protein = True proteins = 'arndcqeghilkmfpstwyv' for line i
print '-------------------------------------------------------------'
我不明白为什么
def seq_type(file_handle):
is_DNA = True
is_RNA = True
is_protein = True
proteins = 'arndcqeghilkmfpstwyv'
for line in file_handle:
line.strip()
if line[0] == '>': #skip this line since its fasta headear and therefore
continue #no sequence at this line
print line
if is_RNA == True:
for char in line:
print 'Character is: ', char
if char.lower() == 'a' or char.lower() == 'u' or char.lower() == 'c' or char.lower() == 'g'or char == '\n':
is_RNA = True
print is_RNA
else:
is_RNA = False
print 'is RNA? ', is_RNA
break
print is_RNA
print '-------------------------------------------------------------------'
print line
if is_DNA == True:
for char in line:
print 'Character is: ', char
if char.lower() == 'a' or char.lower() == 't' or char.lower() == 'c' or char.lower() == 'g'or char == '\n':
is_DNA = True
print is_DNA
else:
is_DNA = False
print 'is DNA? ', is_DNA
break
print is_DNA
那是因为你把它缩进错了<代码>打印行在未缩进的行之后缩进,但块的开头没有任何内容。可能是这样的:
(...)
print '-------------------------------------------------------------------'
print line
if is_DNA == True:
for char in line:
print 'Character is: ', char
if char.lower() == 'a' or char.lower() == 't' or char.lower() == 'c' or char.lower() == 'g'or char == '\n':
is_DNA = True
print is_DNA
else:
is_DNA = False
print 'is DNA? ', is_DNA
break
print is_DNA
你已经编辑了你的帖子。。。我修改了我的答案。这两行之间出现了意外的缩进:
print '-------------------------------------------------------------------'
print line
打印行
是缩进的,不应该缩进。但是def seq\u type(文件句柄)
是的,很抱歉我在复制和粘贴代码时丢失了缩进。。。。请查看编辑后的帖子@tmoreauYou,因为您忘记包含确切的错误消息。值得注意的是,错误消息通常包括它们出现的行。您希望所有打印都在for块中,对吗?你需要将它们全部缩进2级。我在复制粘贴代码时丢失了所有缩进。请查看编辑后的帖子@Charlie Martinohh是的当然。。。我就是看不见。谢谢@Charlie MartinPython通常会忽略空白行,不是吗?所以我认为只有空格的行不应该影响缩进。刚刚在Spyder 2.7上试用过,只要下一行代码缩进正确,在for:
后面有一个空行就可以了。确实如此,但这不是问题所在。问题是,print'-'
没有缩进,打印行
没有缩进。因此Python希望看到print line
属于缩进块,但是没有任何东西指示块的开始。我在这里进一步讨论了这个问题。