由'A', 'U', 'G' or 'C'
组成的三个字母的集合定义为密码子。每个密码子对应20个字母之一。这些字母(氨基酸)的集合定义为蛋白质。文件“ codons.txt”包含密码子和相应的字母。
下一个问题是:内部for循环仅工作一次-它仅将txt文件中的行与第一个密码子进行比较。然后,据我了解,该方法跳过了内部循环。
代码:
path = r'C:\Users\...\codons.txt'
f = open(path, 'r')
def prot(DNA):
protein = ''
a = True
for i in range (0, len(DNA)-2,3):
codon = DNA[i:i+3:1]
print(codon)
for line in f:
if line[0:3:1] == codon:
protein += line[4:5:1]
print(protein)
return protein
prot('AGUCAGGAUAGUCUUA')
输出:
AGU
S
CAG
GAU
AGU
CUU
接下来的问题是:如何使每个密码子的内环起作用?
答案 0 :(得分:0)
遍历文件(for line in f:
)时,到达文件末尾时它将停止。
您可以:
f.seek(0)
或更改循环顺序,以便您仅在文件上迭代一次。
def prot(DNA):
protein = ''
with open(path, 'r') as f:
for line in f:
for i in range (0, len(DNA)-2,3):
codon = DNA[i:i+3:1]
print(codon)
if line[0:3:1] == codon:
protein += line[4:5:1]
print(protein)
return protein