<p>我假设您正在尝试解决<a href="https://stackoverflow.com/questions/13237253/read-file-into-dictionary">your prior question</a>中列出的相同问题。这次包括你的代码做得很好。在</p>
<p>以下是代码中的一些问题。在</p>
<pre><code>def amino(codonfile, DNA):
"""This function reads the 64-line codon file and then converts the DNA string entered into an amino acid string."""
codonfile = []
for line in codonfile:
</code></pre>
<p><code>codonfile</code>是作为<code>amino</code>的参数提供的,但您会立即用空列表覆盖它!由于<code>codonfile</code>是一个空列表,因此没有什么可迭代的。你的for循环循环零次。相反,请执行以下操作:</p>
^{pr2}$
<p>现在,for循环的内部也相当混乱。在</p>
<pre><code> for line in codonfile:
x,y = line.split()
if DNA == dict[x]:
return dict[y]
</code></pre>
<p>此时没有名为<code>dict</code>的字典。(但是<code>dict</code>类型中有一个内置项,所以不要使用该名称)。相反,您需要用<code>codonfile</code>中的项填充字典。在for循环之前,您需要创建一个字典来保存这些项。这样做:</p>
<pre><code>codon_table = {} # brackets for an empty dictionary
for line in f:
x, y = line.split()
codon_table[x] = y
</code></pre>
<p>最后一位是使用<code>codon_table</code>来翻译DNA字符串。您需要将<code>DNA</code>分成3个字母片段,并从<code>codon_table</code>获得翻译。然后您需要将这些翻译连接到一个字符串中并返回它。在</p>
<p>我把最后一段留作练习而没有执行。试一试,如果你拿不到,就把你试过的作为另一个问题。在</p>