2010-01-01から1ヶ月間の記事一覧

ひょんなことから、emailアドレスのフォーマットが正しいかどうかをチェックするスクリプトを書くはめになった。

正規表現を考えてみたけど、こんな感じかしら。 import reclass Validation: def email(self, argv): msg = '^\w[\w\.\-\_]*[^\.]@\w[\w\-]*(\.[\w\-]{1,})+[^\.]$' regex = re.compile(msg) if regex.match(argv): return True return False

とあるプログラムのテストコードをpickleを使って表現しようと思ったんだけれども、どうも手書きでデータ構造を生成するのは大変そう。しかたがないのでYAMLにしてみた。

YAMLパーサはモジュールを別途インストールしないといけないの...電池付属のPythonの付属の電池だけでなんとかしたかった... PythonのYAMLパーサとしてはPyYAMLとPySyckが主流(なのか?)みたい。 どちらを使うか PyYAML is the next generation YAML parser a…

あらかじめファイルに保存しておいたpickle化済みデータを読み込んでみる。

$ python >>> import pickle >>> fp = open('dict.txt','r') >>> x = pickle.load(fp) >>> print x {'mem': '4GB', 'os': 'Snow Leopard', 'name': 'MacBook Pro', 'cpu': 'Core2 Duo'} >>> fp.close() >>> 実際にどんな内容が書かれているかというと... $ c…

Pythonライブラリリファレンスによると、pickleモジュールを使うとPythonのオブジェクト階層をバイトストリームに変換(pickle化)したり、バイトストリームをオブジェクト階層に変換(unpickle化)したりできるらしい。

バイトストリームにしてしまえば、それをファイルに保存したり、逆にファイルからそのバイトストリームデータを読み込んでオブジェクトに変換することも可能ってことね。 テスト用のデータ構造とかを生成できると楽かなぁと思って使ってみようと思ったけれど…

Pythonのyieldを使ってフィボナッチ数列を表現してみるメモ

Pythonでは関数定義の中にyield文があると、その関数はジェレネレータ関数となる(らしい)。フィボナッチ数列を10項表示してみるとこんな感じ。 $ python >>> def fib(): ... x, y = 0, 1 ... while True: ... yield x ... x, y = y, x + y ... >>> z = fib()…