Python 変数と演算 スクリプトの書き方

スポンサーリンク

バイオインフォ道場、くまぞうです。

Pythonでスクリプトを書く場合の、変数の使い方・簡単な演算を確認します。

スポンサーリンク



変数

変数の使い方

変数はデータを保存する入れ物のような働きをします。変数にデータを一時的に保存したり、演算や関数に変数を渡したりして使います。Pythonでは数値や文字列・リスト・ファイルなど様々なオブジェクトを変数に入れることができます。変数には名前をつけて使います。始めの1文字に数字を使うことはできません。

簡単な演算

Pythonでスクリプトを書く場合は、よく変数を使って計算します。直接数字を書いて変数と一緒に四則演算に使うことができます。文字列を使った演算は文字列の連結や繰り返しとして解釈されます。

サンプル

変数と簡単な演算に関する、Pythonのスクリプト例です。fastaファイルを読みこんで表示します。その後、変数を使って計算した行数などをレポートします。

var_test.py

#! /usr/local/bin/python
# -*- coding: utf-8 -*-

count = 0  # 数値の変数
lines = 0  # 数値の変数

file_name = "my.fasta"  # 文字列の変数

f = open(file_name, "r")
for line in f:
    print line.strip()
    if line[0] == '\n':
        continue
    if line[0] == '>':
        count += 1  # 数値の演算
    else:
        lines += 1  # 数値の演算

f.close()

title = file_name + " " + "report"  # 文字列の演算(連結)

print
print title
print '-'*len(title)  # 文字列の演算(*:繰り返し)
print "entry   count : %d" % count
print "average lines : %f" % (lines / count)
print

my.fasta(サンプル用データ)

>cds1 | Symbols:gene1  | desc1
ATGGTGGGTGGCAAGAAGAAAACCAAGATATGTGACAAAGTGTCACATGA
TTTGGCAATCGGTTCCTGGATTGGACTTAGACCCCTACGCATCCTCAAAT
GAAATGTTGCCAACGCTTCTTGAGAGCTGCCCAAAACTTGAATCTCTCAT
>cds2 | Symbols:gene2  | desc2
ATGGTTCAATATAATTTCAAGAGGATCACAGTTGTTCCCAATGGGAAGGA
GCACGTCGTGGTGAAGCTGACAGAGTTATACCAACGCTTAGACCGAAACA
AACCGACAGGCGTTGA
>cds3 | Symbols:gene3  | desc3
ATGACTCGTTTGTTGCCTTACAAAGGTGGAGATTTTTTGGGACCGGATTT
CCGAGGTATACCTCTACCTTATCTTTCTGAATTAACTGTGAGCTTCATAG
GCAAAAATTAAGATTGGTGAATGCTCAAAACGTAAAAAGGATAAGCAAGT
>cds4 | Symbols:gene4  | desc4
ATGGATTCAGAGTCAGAGTCAAAGCTCATATCATTCATTTCTCAATTAGT
ATCATGCATGATACAAACAATCTCTCTGGTCAGCTCAATGGATTTGAAGT
ATCTATTTCGGTAACTTCTTCTCATGTATGCAATGTGATTATATTCTCCA
>cds5 | Symbols:gene5  | desc5
ATGTCGGTTCCTCCTAGATTCCGGTCCGTAAATTCCGATGAGCGAGAGTT
GCTGCAGAGGAAACCACCGGGGATGAAACTGGAGAAGCCGATGATGGAGA
GAGAGAGAGTGATAAATAA

実行と結果

$ ls
my.fasta
var_test.py

$ python var_test.py
>cds1 | Symbols:gene1  | desc1
...

my.fasta report
---------------
entry   count : 5
average lines : 3.000000
スポンサーリンク



タイトルとURLをコピーしました