慕桂英3389331
2021-11-23 19:13:18
我得到這個(gè)錯(cuò)誤 unindent does not match any outer indentation level就行了if line.find('ubox')>0我對(duì) python 不是很有經(jīng)驗(yàn),但在我的 IDE 中按 Shift Tab 不能解決問題。這是我的一項(xiàng)作業(yè)中的模板代碼,所以當(dāng)我復(fù)制粘貼時(shí),它一定弄亂了縮進(jìn)。在給定的文本文件中,如果排隊(duì)但只是盯著代碼,我會(huì)認(rèn)為它是 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貢獻(xiàn)1725條經(jīng)驗(yàn) 獲得超8個(gè)贊
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])])
你還有一個(gè)下面沒有代碼的 else 語(yǔ)句,所以縮進(jìn)掛了,你想讓腳本在那里做什么?你所需要的只是pass這樣就好了
您在此部分中放置了太多選項(xiàng)卡。

胡說叔叔
TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超8個(gè)贊
解釋器期望在 下找到一些東西elif is_data:
,但它什么也沒找到。因此,要么用您的代碼填充它,要么如果您的意思是if line.find('ubox') > 0:
在elif is_data:
條件執(zhí)行時(shí)執(zhí)行該行,則修復(fù)您的縮進(jìn)。
添加回答
舉報(bào)
0/150
提交
取消