我是大学“初学者编程”课程的一名学生。我们这门课的最后一个项目涉及创建一个DNA测序器,它可以从用户输入或txt文件打印DNA序列,计算序列中的核苷酸,将DNA转录成mRNA,并翻译成多肽。我可以打印出序列并计算核苷酸,但当涉及到转录时,我会得到这个错误。
我们的班级在这个项目中使用Spyder。
这是我目前用来转录DNA的代码。
def transcribe(DNA):
mRNA = ""
for i in DNA: # Use a for loop to walk through the DNA data
# Use an if ... elif ... elif ... elif statement
# to do different things depending on which
# nucleotide you find there, add mRNA nucleotides
# using the string += "X" function
if DNA[i] == "C":
mRNA += "G"
elif DNA[i] == "A":
mRNA += "U"
elif DNA[i] == "T":
mRNA += "A"
elif DNA[i] == "G":
mRNA += "C"
print ("mRNA sequence: " + mRNA)
print()
return(mRNA) 在运行程序并到达可以选择将DNA转录为mRNA的位置后,收到以下错误:
if DNA[i] == "C":
TypeError: string indices must be integers我如何修正我的语法才能使它工作呢?
发布于 2019-05-05 03:37:00
for i in DNA:如果DNA是一个字符串,那么i将采用该字符串中每个字符的值,而不是整数值。
循环中的if语句可以直接将i与您要查找的值进行比较。
if i == "C":
mRNA += "G"发布于 2019-05-05 03:46:36
因为DNA是一个字符串,所以i将是一个字符,所以您可以使用字典轻松地翻译每个字母:
def transcribe(DNA):
mRNA = ""
translation = {'C' : 'G', 'A' : 'U', 'T' : 'A', 'G' : 'C'}
for i in DNA:
mRNA += translation[i]
print ("mRNA sequence: " + mRNA)
print()
return(mRNA)https://stackoverflow.com/questions/55986136
复制相似问题