我收到此错误
unindent does not match any outer indentation level
行
if line.find('ubox')>0
我对python不太了解,但是在IDE中按Shift Tab不能解决问题。这是我其中一项作业的模板代码,因此当我复制粘贴时,它一定弄乱了缩进。在给定的文本文件中,如果排队但只盯着代码看,我会认为如果在elif中是嵌套的。
def parse_dot_ps_file(filepath):
'''
Parsing of a dot.ps file that contains result of RNAfold program
@args:
filepath: (full or relative) path to the dot.ps.
@return:
dot_ps_result: list f lists with i, j, freq_i_j
'''
dot_ps_result = []
with open(filepath, 'r') as f:
is_data = False
for line in f:
if not is_data and line.startswith('%start of base pair probability data'):
is_data = True
continue
elif is_data and line.startswith('showpage'):
break
elif is_data:
if line.find('ubox') > 0:
# take only first 3 numbers
data_line = line.split()[:3]
dot_ps_result.append(
[int(data_line[0]), int(data_line[1]), float(data_line[2])]
)
return dot_ps_result
答案 0 :(得分:0)
解释器希望在elif is_data:
下找到某些内容,但是什么也没找到。因此,要么用您的代码填充它,要么在if line.find('ubox') > 0:
条件执行后让行elif is_data:
执行,然后修复缩进。
答案 1 :(得分:0)
if line.find('ubox') > 0:
# take only first 3 numbers
#these two lines below are the problem
data_line = line.split()[:3]
dot_ps_result.append([int(data_line[0]), int(data_line[1]), float(data_line[2])])
您还有一个else语句,下面没有任何代码,因此缩进悬挂了,您希望脚本在那里做什么?您只需要pass
就可以了
您在本节中放置了太多标签。
希望有帮助