2016-04-28 99 views
1

我有一个程序可以运行流感A中一种蛋白质的氨基酸序列列表,我正在分析这个蛋白质并找到627位的氨基酸在每个蛋白质的FASTA文件中的每个氨基酸序列中。Python 2.7嵌套If语句在打印数组位置后不会打印字符串文字

我的代码是这样的

with open(file, "r") as source: 
    for heading_and_lines in group_by_heading(source): 
     heading= heading_and_lines[0] 
     lines= heading_and_lines[1:] 
     lines = ''.join(lines) 
    if lines[627-1] == 'K': 
     print "---------------MUTATION BELOW--------------" 
     print heading 
     print lines[627-1] 
     #print "-------------------------------------------" 

print "end of file" 

但我的代码工作这样

with open(file, "r") as source: 
    for heading_and_lines in group_by_heading(source): 
     heading= heading_and_lines[0] 
     lines= heading_and_lines[1:] 
     lines = ''.join(lines) 
    if lines[627-1] == 'K': 
     print "---------------MUTATION BELOW--------------" 
     print heading 
     print lines[627-1] 
     print "-------------------------------------------" 

print "end of file" 

出于某种原因,打印,我发现返回一个错误的突变下方的线,和意外缩进。看到我想要每条突变下面的行,就像上面的行一样,所以我可以清楚地组织突变。任何你认为下面的打印声明不起作用的原因?

对不起,如果这听起来很混乱,并一如既往感谢您的时间。

+2

检查标签和间距。如果你的程序中有两个,它会中断。 – TigerhawkT3

+0

当我把它拉回来时,它会在每个菌株的下面打印一条线,当我只想在下面打印具有赖氨酸突变的菌株(AKA氨基酸'K'匹配) – SweetJD14

+0

Darn。我只是检查了所有的空格,并且在打印位置[627-1]处的氨基酸之后,它不会让我打印任何字符串文字。出于某种原因,它总是说意想不到的缩进。 – SweetJD14

回答

1

你的缩进是错误的,缩进代码这样

with open(file, "r") as source: 
    for heading_and_lines in group_by_heading(source): 
     heading= heading_and_lines[0] 
     lines= heading_and_lines[1:] 
     lines = ''.join(lines) 

     if lines[627-1] == 'K': 
      print "---------------MUTATION BELOW--------------" 
      print heading 
      print lines[627-1] 
      print "-------------------------------------------" 
+0

完美。按我的意愿完美工作。你能详细谈谈为什么我的缩进是错误的吗? – SweetJD14

+1

@ SweetJD14嘿,你可能是新的,但在这里说“谢谢”的最好方式就是接受答案。您可以通过点击问题文本左侧箭头下的灰色“V”来实现。这样,其他用户可以看到你接受了答案,这可能是最好的答案。 –

+0

明白了,只需点击它!是的,我有点新,谢谢你的建议。祝你有个好的一天。 – SweetJD14