为了账号安全,请及时绑定邮箱和手机立即绑定

Python 模板代码的缩进混淆

Python 模板代码的缩进混淆

慕桂英3389331 2021-11-23 19:13:18
我得到这个错误 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这样就好了


您在此部分中放置了太多选项卡。


查看完整回答
反对 回复 2021-11-23
?
胡说叔叔

TA贡献1804条经验 获得超8个赞

解释器期望在 下找到一些东西elif is_data:,但它什么也没找到。因此,要么用您的代码填充它,要么如果您的意思是if line.find('ubox') > 0:elif is_data:条件执行时执行该行,则修复您的缩进。


查看完整回答
反对 回复 2021-11-23
  • 2 回答
  • 0 关注
  • 157 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信