開発環境
- 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 コメント:
コメントを投稿