从DNA链转录mRNA代码

时间:2016-03-24 07:47:45

标签: python

我认为用这段代码

将字符串a替换为u等等很容易
DNA= "atgcatgctagcagtcagcatcgatcgatcagctagctag"

   def transcribe(dna):

     dna.replace("a", "u")
     dna.replace("t", "a")
     dna.replace("g", "c")
     dna.replace("c", "g")
     return 

它根本没有改变我的变量。有人可以帮我解决这个问题吗?

谢谢

1 个答案:

答案 0 :(得分:2)

  • dna.replace将产生新字符串;它不会改变dna。您需要将结果分配给某些内容。
  • c替换为g,然后将g替换为c并不符合您的想法。例如。 atcg - > atgg - > atcc
  • 你不归还任何东西

解决方案是同时更换:

import string
def transcribe(dna):
    return dna.translate(string.maketrans("atgc", "uacg"))

或替换为中间值:

def transcribe(dna):
    dna = dna.replace("a", "u")
    dna = dna.replace("t", "a")
    dna = dna.replace('g', '_')
    dna = dna.replace('c', 'g')
    dna = dna.replace('_', 'c')
    return dna