为了得到输入字符的补码,下面的代码怎么能工作?这个循环似乎永远不会结束,但是假设,如果我输入‘Z’作为dna,为什么它不会断裂并退出呢?我是不是用错了?伊莱夫呢?在
def get_补体(dna):
''' (ch) -> ch
Reverse the 'A' to 'T' or vice versa and 'C' to 'G' and vice versa too.
>>> get_complement('A')
'C'
>>> get_complement('G')
'T'
'''
if dna == 'A':
print ('C')
if dna == 'C':
print ('A')
if dna == 'T':
print ('G')
if dna == 'G' :
print ('T')
while {'A', 'C', 'G', 'T'}.isnotsubset(set(dna)) :
break
return ('')
您应该使用
dictionary
设置一个映射那你可以做些什么
^{pr2}$输出
对于一个角色:
输出
正如你写的例子一样(赛博也根据你的例子写了他的答案),你得不到补充。你得到的是A->;C(不是补码T),T->;G而不是A,等等
像赛博一样使用字典,它应该是这样的:
在代码中,包括对非DNA字符的检查:
^{pr2}$其中“original”生成“TAGCAGT”和“bad\u original”生成“包含非DNA字符”。在
注意,这是补语,而不是相反的补语,这通常更有趣。在
更一般地说,如果你打算用它来做DNA序列,你应该看看BioPython模块(http://biopython.org/wiki/Seq#Complement_and_reverse_complement),这将使你的补体(和反向补体)具有更多的通用性、错误检查等
相关问题 更多 >
编程相关推荐