2016-01-13 47 views
0

我的任務是「寫函數計算密碼子的DNA序列」 ATG「的內容寫函數計算密碼子的DNA序列「ATG」

我做類似的東西,但我不知道什麼是錯的這

def seq(dna): 
    dna = dna.count("ATG") 

print seq("ATGSDSGFAGEFRASFWET") 

請幫我

+0

那麼,你是否得到一個錯誤,或...? – Kevin

+0

您沒有縮進函數體。否則,你應該具體說明你希望發生什麼,以及發生了什麼。 – kazemakase

+1

什麼是「計算密碼子的ATG序列」應該是什麼意思?計算序列的頻率?如果是這樣,那麼你不能簡單地使用'count'方法,它會給你錯誤的結果,因爲它會計算幀移位的「ATG」(例如,即使沒有幀內「ATG」,即使「CATGTA」將返回'1' 「)。 –

回答

1

1 - 剝去你的主要串串的數組大小爲3

2 - 你的字符串和C數組中做一個迭代ompare與串「ATG」 - 如果比較結果爲真,在1遞增一個int變量附配

3 - 顯示附配int變量

+1

這不可能奏效:'ATG'可能在第一個子字符串的中途開始:像'CAT GAT'。此外,它效率低下。您可以使用* Knuth-Moris-Pratt *算法在一個線性搜索中執行此操作。 –

+1

當然它會工作。 DNA中不含有少於或多於3個字母的蛋白質序列。 –

+0

我的意思是核苷三磷酸鹽而不是蛋白質 –

0

我猜你忘了加return的結果呢?

def seq(dna): 
    dna = dna.count("ATG") 
    return dna 

print seq("ATGSDSGFAGEFRASFWET")