<p>好的,我正在尝试创建一个程序,这个程序需要三个DNA碱基,然后给你免费的氨基酸。我能有效地将DNA转录成互补的RNA,但我的翻译功能不起作用。你知道吗</p>
<pre><code>Here is my code:
def basematch(base):
if base == "A":
return "U"
elif base == "T":
return "A"
elif base == "G":
return "C"
elif base == "C":
return "G"
else:
return "invalid"
rawdna = raw_input("Enter a raw DNA sequence: ")
comp = list(rawdna)
length = len(comp)
n = 0
codonlist = []
while n + 1 <= length:
final = comp[n]
finalbase = basematch(final)
codonlist.append(finalbase)
n = n + 1
rawRNA = "".join(codonlist)
def translate(codon):
if codon == "GCU" or "GCC" or "GCA" or "GCG":
print 'Ala'
elif codon == "UUU" or "UUC":
print "Phe"
elif codon == "UUA" or "UUG":
print "Leu"
elif codon == "UGU" or "UGC":
print "Cys"
elif codon == "UGA" or "UAA" or "UAG":
print "Stop"
elif codon == "UGG" or "UAU" or "UAC":
print "Tyr"
elif codon == "UCU" or "UCC" or "UCA" or "UCG":
print "Ser"
elif codon == "CUU" or "CUC" or "CUA" or "CUG":
print "Leu"
elif codon == "CCU" or "CCC" or "CCA" or "CCG":
print "Pro"
elif codon == "CAU" or "CAC":
print "His"
elif codon == "CAA" or "CAG":
print "Gln"
elif codon == "CGU" or "CGC" or "CGA" or "CGG":
print "Arg"
translate(rawRNA)
</code></pre>
<p>每当我翻译rawRNA时,它总是返回“Ala”。你知道吗</p>
<p>抱歉,代码太长了。谢谢你的帮助。你知道吗</p>
<p>线路没有检查好。你知道吗</p>
<pre><code>if codon == "GCU" or "GCC" or "GCA" or "GCG":
</code></pre>
<p><code>or</code>并没有扩展到<code>==</code>;它将检查<code>if "GCC":</code>,它总是<code>True</code>,因此它结束于此。你知道吗</p>