如果条件由于未知原因失败

时间:2019-08-07 04:00:16

标签: python python-3.x

我有以下Python3代码:

parts = ['g109343.t1', '3e908dc966fefe367e64dc9d98b0d3ab', '1358', 'SMART', 'SM00343', '', '600', '616', '0.36', 'T', '17-07-2019', 'IPR001878', 'Zinc finger, CCHC-type', 'GO:0003676|GO:0008270']
trans_id=parts[0]
db=parts[3]
id=parts[4]

start=int(parts[6])
end=int(parts[7])
name="Name="+parts[5]
dbxref = "Dbxref=" + db + ':' + id
note="Note="+db
t=';'.join([name,dbxref,note])
print("!!!" + parts[11])

if len(parts) == 12:
    t = t + ";_Accession=" + parts[11]
if len(parts) == 14:
    go_terms = parts[13].split('|')
    t = t + ";Ontology_term=" + ','.join(go_terms)

print(t)

为什么没有if len(parts) == 12:被触发并且_Accession在最终输出中丢失,如下所示?

!!!IPR001878
Name=;Dbxref=SMART:SM00343;Note=SMART;Ontology_term=GO:0003676,GO:0008270

2 个答案:

答案 0 :(得分:1)

两个问题的答案相同:

len(parts)

Out[1]
14

因此它将永远不会输入条件。

答案 1 :(得分:1)

parts作为14元素,这就是为什么它提供输出的原因,但是要知道有多少个元素,请执行以下操作:

print(len(parts))

它将输出:

14