这是我正在做的练习:
当给定一个字符串的
代码时,要构建的函数amino_acids必须返回元组和整数的列表。第一个元组必须包含所有的氨基酸,整数必须是不同氨基酸的数目。您可以使用下面的字典来帮助您的函数。函数还必须不包括停止密码。
这就是我写的代码:
def amino_acids(mrna):
my_string = " "
my_dict = {'AUG':'Met', 'CCA':'Pro', 'CCU':'Pro'}
for i in range(len(mrna)):
my_string += my_dict[mrna[i]]
# your code here
return这是我正在犯的错误:
KeyError跟踪(最近一次调用) in
有人能帮我解决我哪里出了问题吗?
发布于 2020-03-21 15:41:46
,有人能帮我解决我哪里出了问题吗?
您的循环for i in range(len(mrna))以及随后在mrna中使用mrna[i]读取的mRNA只查看单个字符。但是,您需要同时查看三个字符,因为每个氨基酸都编码为一个核苷酸三重态。
我试图解释这些评论中所发生的一切:
def amino_acids(mrna):
protein = "" # Start with empty protein string
translation = {"AUG": "Met", "CCA": "Pro", "CCU": "Pro"} # Which codon translates for which amino acid
stop_codons = {"UGA"} # Define stop codons
while mrna: # Repeat loop while mRNA isn't exhausted
codon = mrna[:3] # Select first three codes
mrna = mrna[3:] # Remove current codon from mRNA
if codon in stop_codons:
break # Break loop if triple is a stop codon
amino_acid = translation[codon] # Translate codon into its amino acid
protein += amino_acid # Add the amino acid to the protein string
return protein
print(amino_acids("AUGCCACCUUGA"))其中的指纹:
MetProProhttps://stackoverflow.com/questions/60789656
复制相似问题