2013/09/26

Ubuntu で python

Ubuntu/Lubuntuを起動してTask Managerを見ると常にpythonが起動していて、18MBぐらいのメモリを食っている。Ubuntuではpythonは欠かせないものらしい。常時起動しているならば、実行環境は整っているわけだし、インタプリタなので、テキストを書けばそれで実行できてしまう。そんなお手軽なpythonを使うのも手だなぁと思い始める。実際pythonで何ができるのかよく分からないのだが、習得が楽なインタプリタ言語ということなので、少しいじってみることにした。

ネットで少し調べてみると、python言語はインデントを使って制御するので、だれが書いても記述が同じようになり、読みやすいというメリットがあるようだ。今までインデントがソースに影響するような言語をやったことがないので、少し興味が出てきた。

まずはHello Worldから

ターミナルから直接プログラミングすることもできるのだが、他の言語と同じようにテキストファイルに書くことにした。 hello.pyという名前のテキストファイルを作成して、下の内容を書き込む。
print 'Hello World'

ターミナルから実行してみると、Hello Worldが表示される。
$ python hello.py
Hello World

なんとも手続きの少ないプログラムだろうか。Cなどと比べると、何が起きているのかが掴みづらく思えてしまう。

次は日本語表示

日本語を扱うには下のようにコメントアウトの部分にutf-8を宣言する必要がある。そして日本語出力する前にuを書く。1行目には#!/usr/bin/env python を書いてみた。pythonで実行しますよという意味らしい。すべてコメントアウトされていているので、ちゃんと読まれているのだろうか? utfを宣言しないと日本語ではエラーが出るので読んでいるに違いない。やや謎の仕様だ。ちなみに1行目に「#コメント」など日本語を打つとエラーが起きる。3行目以降なら特に問題なし。pythonのコメントは何かいろいろ約束事がありそうだ。
#!/usr/bin/env python
# coding: utf-8
# コメント
print u'こんにちは パイソン'

実行すると日本語が表示される。
$ python hello.py
こんにちは パイソン


if文を使ってみる

括弧を使わずにコロンを使って書く。インデントは重要で、これを正確に書かないとエラーになる。
#!/usr/bin/env python
# coding: utf-8
# コメント
num = 11
if num % 2 == 0:
    print u'偶数です'
else:
    print u'奇数です'

実行するとnumの値に応じて偶数か奇数が表示される。
奇数です

for文を使ってみる

for文はちょっと変わっている。10回表示をするという内容。
#!/usr/bin/env python
# coding: utf-8
for i in xrange(10):
    print i ,u'回目'

実行すると勝手に改行されて表示される。
0 回目
1 回目
2 回目
3 回目
4 回目
5 回目
6 回目
7 回目
8 回目
9 回目


関数を使ってみる

関数はdefで定義。この場合引数を3つ用意した。関数を使う側は結構自由で、値がなければ関数側のデフォルト値が使われる。他にもいろいろ柔軟な扱いが可能らしい。
#!/usr/bin/env python
# coding: utf-8
def func(a=0, b=0, c=0):
    print a, b, c

func(1,2,3)
func(1,2)
func(1)
func()

実行すると以下のようになる。
1 2 3
1 2 0
1 0 0
0 0 0


確かに書く量は少なさそうだ。細かな文法はその都度覚えることにして、何か有用なプログラムでも作ってみようかな。