メモ

また、ちょっと勉強したので忘却禄

PythonでのUTF-8使用

pythonでファイルがUTF8であることを示すためには

coding: utf-8 または coding=utf-8

と2行目あたりに書いておく。
また、emacsにも対応するためには -*- coding: utf-8 -*- と書いておくとよい。

__main__の利用

.pyファイル内の__main_は実行したスクリプト自身を指す(?)ので、

if __name__ == '__main__':

と書いてやれば、直接実行したとき以外には実行されない。テストコードを埋め込むときに便利

低レベルAPIを使ったファイル操作

Pythonでは__buildin__のopen()関数でファイルアクセスが容易にできるが、
osモジュールを組み込むとより詳細なファイルアクセスができる。

>>> import os
>>> f = os.open("/tmp/osFile.py", os.O_CREAT | os.O_RDWR| os.O_EXCL)
>>> os.write(f, "Hello world\n")
12
>>> os.close(f)

ただし、通常のファイルアクセスレベルであれば組み込みのopen()関数で問題ない。
ブロックデバイスやOS固有の情報にアクセスする場合に利用する。
See Also Pythonライブラリ -- リファレンスファイル記述子の操作

Pythonのデータの型

基本的にデータの値として使うのは以下の3つぐらい。setデータ型としてあるけど、
使い方がちょと違う。

リスト 値の変更可能 a[0,1,2,4,6] pushやpopがあるのでスタックとして利用できる
タプル 値の変更不可 a(0,1,2,4,6) タプルの中にタプルを入れ子ができる
辞書 値の変更可能 a = {'1st':1,'2nd':2,'3rd':3,'4th':6} リストはキーに使えない

辞書の基本的な使い方

>>> a = {'1st':1,'2nd':2,'3rd':3,'4th':6}      # 辞書の作成
>>> print a
{'4th': 6, '2nd': 2, '3rd': 3, '1st': 1}
>>> a['5th'] = 10                              # 5thというキーで10を入れる
>>> a
{'4th': 6, '5th': 10, '2nd': 2, '3rd': 3, '1st': 1}
>>> a['3rd']                                   # 3rdのキーの値を呼び出す
3
>>> del a['4th']                               # 4thのキーの値を消す
>>> a['6th']= 12
>>> a
{'6th': 12, '5th': 10, '2nd': 2, '3rd': 3, '1st': 1}
>>> a.keys()                                   # 辞書の中のキーを表示する
['6th', '5th', '2nd', '3rd', '1st']
>>> a.has_key('5th')                           # 辞書が5thキーを持っているかどうか
True

ループテクニック

iteritems 辞書のキーと値を動じ取り出し a.iteritems
enumrate 要素のインデックスと要素同時取り出し enumerate(a)
zip 2組以上のシーケンスをひとまとめにする zip(a,b)
reversed シーケンスを逆順に呼び出す reversed(xrange(1,10,2)

See Also ループテクニック