【发布时间】:2017-05-03 16:43:13
【问题描述】:
下面的代码正在做我想做的大部分事情......
我只需要让print 成为return,这样我就可以将数据转储到我正在编写的另一个txt 文件中(f2)。
(另外,print letters 得到的间距不是我想要的,但我想我会在稍后处理它。)
每次我将 print 替换为 return 时,它都会在初始文本文件 (f1) 的第一行之后停止读取。
def DNA2Prot(f1, f2="translated_fasta.txt"):
fin = open(f1, 'r')
for letters in fin:
if letters[0] != ">":
seqs = letters
codons = [ ]
protein = ''
for i in range(0, len(seqs), 3):
try:
codon = seqs[i:i+3]
codons = codon_table[codon]
protein = protein+codons
except KeyError:
protein += ""
print protein
else:
print letters
fin.close()
【问题讨论】:
-
请修正缩进,在运算符周围添加空格,赋值...另外,粘贴一些示例数据,以便我们了解文件包含的内容
-
考虑支持有用的答案并接受作为答案,请参阅What does it mean when an answer is "accepted"?
-
您的代码在遇到无效密码子(被有效跳过)后继续翻译。崩溃或拥有完整的密码子表可能会更好。
标签: python for-loop printing return bioinformatics