Python

python の開発環境を作る

もはや Python の開発環境作成が面倒くさすぎて、他人には勧めないけど 必要にかられて環境を途中まで作ったので、記載しておきます。distribute のインストールPython のパッケージ管理ソフト curl -O http://python-distribute.org/distribute_setup.py su…

デコレータ

デコレータについて書こうとしたら、エキパイのまんまに近くなったので割愛。 自分的には、下書きにあるよ〜使い所は、下記の通り。 引数チェック キャッシュ プロキシ コンテキストプロバイダ 一つ一つについて、エキパイには、サンプルがあるので読むと良…

ipython のメモ

ipython の使い方のメモを付箋に残しておいたんだけど、見事に忘れていたのでblog化。ipython -cl で、doctest にも使える >>> という出力をする。 object? で、object の情報を出力 @run filename で、ファイルを実行 @pdb (filename) で、pdb 実行 In[n] …

python の sort()

Python 3.2.1 で出力。元データを破壊するソート >>> data = [6,3,4,5,2,1] >>> data.sort() >>> print(data) [1, 2, 3, 4, 5, 6] 元データを破壊しないソート >>> data = [6,3,4,5,2,1] >>> data2 = sorted(data) >>> print(data) [6, 3, 4, 5, 2, 1] >>> p…

with statement

python には、with というファイルのIO 関連のステートメントがある。ex. try: f = open('hoge', 'w') print('This is ', file=f) except IOError as err: print('File IO Error : ' + str(err)) finally: if 'f' in locales(): f.close() これは、下のよう…

ジェネレータ

早い話が yield で、処理を止めて値を返す。 値が1つずつ処理できるので、list の全体をコピーするよりもパフォーマンスが良い。エキパイには「ループ処理や、シーケンス処理を返す関数を実装する時は まずジェネレータの利用を検討すべき」と記載がある。 …

イテレータ

iter() に シーケンスを渡すと next() が使えるようになる。 早い話、連続データを iter(hoge) というカタチで渡すと、一個一個処理できるという話。 >>> hoge = ['hoge', 'fuga'] >>> a = iter(hoge) >>> print next(a) dictionary は順序を持っていないの…

python 3k で print 関数のあと改行したくない

python 2.x 系の場合、開業したくない時は 会社を設立しなければ良い。ちがう。 python 2.x で改行したくない時は print hoge, だった。python 3k では、 print(hoge,end='')

Mac で Python のマルチバージョン環境

rvm みたいなものを、mac に入れる。 よくある話に習って Pythonbrew の上に VirtualEnv を置くカタチにします。 Pythonbrew のインストール github : https://github.com/utahta/pythonbrew次のコマンドを実行します curl -kL http://xrl.us/pythonbrewinst…

リスト内包表記

あぁ、とうとう Python カテゴリーを作ってしまった。たまに Expert Python の内容を忘れてしまうので、メモがわりに記載。 ま、順々に。 リスト内包表記 単純な例は >>> [i for i in range(10)] [1,2,3,4,5,6,7,8,9,10] for の前に本体を書く。 つまり、C …