擅长:python、mysql、java
<p>首先,最好将与一个输出字母相关的所有可能性放入一个列表中,并检查您的<code>DNA</code>变量是否是<code>in</code>这样的列表。只是看起来比较整洁。他说</p>
<p>它可能看起来像:</p>
<pre><code>if DNA in ['ATT', 'ATC', 'ATA']:
print 'I'
</code></pre>
<p>而不是:</p>
<pre><code>if DNA == 'ATT' or DNA == 'ATC' or DNA == 'ATA':
print 'I'
</code></pre>
<p>如果你想把所有的字母都放在一行中,你可以使用一个变量,简单地给它添加字母,然后在分析完整个DNA代码后打印出来。他说</p>
<pre><code>def translate(DNA):
output = ''
if DNA in ['ATT', 'ATC', 'ATA']:
output += 'I'
...
</code></pre>
<p>要在少于3个字母或任何其他组合时打印“X”,最好使用<code>while</code>循环。他说</p>
<p>例如,您的代码可以如下所示:</p>
<pre><code>def translate(DNA)
output = ''
while DNA: #it's the same as while DNA != ''
three_letters = DNA[:3] #you should come up with better name ;)
DNA=DNA[3:]# in Python 3 this works even if DNA has less than 3 letters, hope it works in Python 2 too
if three_letters in ['ATT', 'ATC', 'ATA']:
output += 'I'
... #here code all elifs and else inside while loop
print output
</code></pre>
<p>这样,您只需给函数提供参数就可以得到结果,不需要外部<code>for</code>循环或类似的循环。他说</p>