開発環境
- Mac OS X Snow Leopard (OS)
- WingIDE
- Script言語: Python
『初めてのコンピュータサイエンス』(Jennifer Campbell, Paul Gries, Jason Montojo, Greg Wilson 著、長尾 高弘 訳、オライリー・ジャパン、2010年、ISBN978-4-87311-463-7)の10章(アルゴリズム), 10.4(練習問題), 1(a)-(c)を解いてみる。
1
(a)
問題の補数を見つけるために使うアルゴリズムの概要。
文字列(DNAシーケンス)に添字で1文字ずつ取得する。
アクセスした1文字がAならTに、TならAに、GならCに、CならGに順に置き換える。
置き換えた文字列がDNAシーケンスの補数。
(b)
点検。補数に変わってからまた元の値に戻る文字はないので(a)の概要を書き換える必要はない(?)
(c)
コード
def complement(sequence): result="" for i in range(len(sequence)): if sequence[i]=="A": result+="T" elif sequence[i]=="T": result+="A" elif sequence[i]=="G": result+="C" elif sequence[i]=="C": result+="G" else: result+=sequence[i] return result
入出力結果(Python Shell)
Pythonでは文字列の各文字を
文字列[添字]=文字
と変更できないことを忘れてて、少してこずる。
Pythonでは空の文字列に1文字ずつ加えていく方法を使うことを忘れない!
0 コメント:
コメントを投稿