2011年7月22日金曜日

開発環境

  • 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 コメント:

コメントを投稿