下面的代碼不能如何工作,以獲得輸入字符的補碼?看起來循環不會結束,但如果我輸入'Z'作爲dna,爲什麼它不會中斷並退出?我是否使用了休息或者是否錯誤? elif怎麼樣?獲取字符的補充
高清get_complement(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 ('')
就像你寫的例子一樣(而且Cyber已經根據你的例子寫了他的答案),你沒有得到補充。它們被設置爲使得A-> C(而不是補碼T),T - > G而不是A等。 使用字典作爲Cyber已完成,它應該看起來像這樣: complement = {' A':'T','T':'A','C':'G','G':'C'} – iayork