我得到这个错误 unindent does not match any outer indentation level就行了if line.find('ubox')>0我对 python 不是很有经验,但在我的 IDE 中按 Shift Tab 不能解决问题。这是我的一项作业中的模板代码,所以当我复制粘贴时,它一定弄乱了缩进。在给定的文本文件中,如果排队但只是盯着代码,我会认为它是 elif 中的嵌套 if。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
2 回答
qq_遁去的一_1
TA贡献1725条经验 获得超7个赞
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这样就好了
您在此部分中放置了太多选项卡。
胡说叔叔
TA贡献1804条经验 获得超8个赞
解释器期望在 下找到一些东西elif is_data:
,但它什么也没找到。因此,要么用您的代码填充它,要么如果您的意思是if line.find('ubox') > 0:
在elif is_data:
条件执行时执行该行,则修复您的缩进。
添加回答
举报
0/150
提交
取消