python

AOJ向けPythonライブラリ&コマンドラインツールセットaojtoolsを公開しました

PyPIにaojtoolsというパッケージを登録しました。 aojtoolsはAizu Online Judge Systemが提供するAPIのラッパーとsubmit用モジュール、それからコマンドラインプログラムからなります。aojtoolsを使うとAPIに透過的にアクセスできたり、プログラムを素早く提…

Google DocsをDBとして使うアプリケーションを作成してみた

YoutubeやBlogger、CalenarなどGoogleのサービスを利用するGoogle Data APIというのがあるらしいです。 その一つにGoogle Documentsのスプレッドシートを操作するAPIがあり、今回はそのAPIを使って簡単な食事記録アプリケーションを作ろうと思います。 イン…

Pythonで実行中のスクリプトで疑似インタプリタ

Pythonでファイルにプログラムを記述しているときに、ここでインタプリタを起動したいなあとか思う事があるわけです。そんなときに以下のコードの突っ込んで実行しているんですがもっといい方法はないかなあとか思ってる最近です。 VBみたいにGUIでブレーク…

凸包走査アルゴリズムをPython+PyOpenGLで

オライリーから出版されている『アルゴリズムクイックリファレンス』で凸包走査アルゴリズムを学習したので、PythonとPyOpenGLで適当に点を打った点集合から凸包を計算して表示するプログラムを作成しました。点(-1,-1)と、点(+1,+1)からなる矩形に一様…

XMLツリーのタグへの参照を属性アクセスで実現する

PythonでXMLを読んで辞書オブジェクトの木に変換するプログラムを書いたけどなんかいけてないので、タグへのアクセスを属性アクセスで実現する方法を考えてみました。要は <root> <children> <child>A</child> <child>B</child> <child>C</child> <child>D</child> </children> </root> こういうXMLを読んで、Pythonから root['children']['child'][0] こうア…

PythonでTwitterにログインするプログラムを書いていたら、ブラウザでの認証にCAPTCHAが出現した件

PythonからTwitterにログインしてpostしたりfollowingを確認したりするプログラムを書いてみようとしたわけなんですが、数回はうまくいったものの以降突如としてCAPTCHAが現れ玉砕。さて困った。ついったー的にはOAuth使えや!!!って感じなんでしょうか。 …

PythonでAmazonの商品ページをパースしてasinから書籍名を取得する

とある理由でPythonでASIN→書籍名変換をしたいと思います。前はAmazon APIとかいうのがあって楽に取得できた記憶があるんですが、今はどうやら認証の手続きが必要になったらしく、名前も変わっていました。Product Advertising API認証にシークレットトーク…

PythonでHTTPS通信してはてなにログインしてみる

今書いているプログラムでhttps通信を使ったログイン処理っぽい事をする必要が出てきたのでPythonのマニュアルを読んで、簡単にできることがわかりました。urllib2を使うみたいだ。 http://www.python.jp/doc/2.5/lib/urllib2-examples.htmlサンプルとして、…

PythonのCGIスクリプトで診断メーカーの診断結果を複数同時に取得する

診断メーカーの複数の診断結果をテキストで返すCGIスクリプト。結果をHTMLから抽出するのにBeautifulSoupライブラリを使用した。追記: 2010/11/02 HTML構造の変化に伴ってソースを変更しました。 #! /usr/bin/python2.6 # coding: utf-8 import cgi import …

__slots__使ってみた

Pythonのクラス定義で__slots__でクラスの属性を指定するとクラスをインスタンス化するとき__dict__を作成しないため メモリを節約 参照、代入可能な属性を固定 できるらしい。。。実際のところどの程度メモリを節約できるのかに興味をもったので、100万…

Pythonでパスワード生成&クリップボードへコピー wxPython編

前回のエントリで、パスワードを生成してクリップボードにコピーするプログラムを書きました。今回も同じ機能を持つプログラムを書きました。前回はWIN32APIをつかってクリップボードを操作しましたが、今回はクロスプラットフォームのGUIライブラリであるwx…

Pythonでパスワード生成&クリップボードへコピー

自分でランダムなパスワードを考えるのが億劫なので適応な長さのパスワードを生成してクリップボードに貼り付けるプログラムを書いた。 #! /usr/local/bin/python2.6 # coding: utf-8 # n文字のパスワードを作成するプログラム。 # 最後にプロンプトを出して…

Pythonのデコレータで関数の型チェック(2)

前回のエントリでは1引数で1つの値を返す関数の型チェックをするデコレータを書きました。今回はそれを拡張して、複数の引数を受け取り一つの値を返す関数に対してごく簡単な型チェックをするコードを書きました。 #! /usr/local/bin/python2.6 # coding: …

Pythonのデコレータで関数の型チェック

『エキスパートPythonプログラミング』を少しづつ読み進めています。序盤からジェネレータについて自分の知らなかった使い方が載っていたりして読み進めるのが楽しいな。BTSを使ったバグ管理、unittestモジュールとnoseを使ったTDDなど、実際の開発プロセス…

wxpythonで簡単な予定管理アプリケーションを作った

さんざんwxGladeとXRC駄目だなどと書いておいてまたwxGladeでアプリケーション書いちゃいました。 wxGladeが4時間で7回落ちた。最高記録だ!少し前まで、webサーバ上で予定管理のためのごく簡単なアプリケーションを作って使っていて、そのサーバが使えな…

Pythonでネットワーク上のコードをインポートする

impモジュールを使うと自前のimportを記述できそうだということがわかったので、試しにはてなダイアリーに簡単なソースコードをアップロードしてPCのローカルにあるファイルからインポートして関数を実行させてみました。 実装にはhttp://antas.jp/blog/ya…

Pythonオブジェクトをjsonモジュールでjsonにシリアライズ

前の記事で書いたjsonシリアライザの仕組みを、自作のパーサではなくjsonモジュールで実装した。32行で実装できた。お手軽。ユーザ定義型のシリアライズの方法は同じで、__encode_json__で永続化したいオブジェクトを返して、__decode_json__クラスメソッド…

Pythonでユーザ定義型をサポートする自作jsonパーサ

Pythonは2.6からjsonのシリアライズをする標準モジュールのjsonがある。このモジュールの関数loads/dumpsなどを使うと、手軽にデータをjson文字列にしたり、json文字列をPythonデータに変換できるので、Ajaxアプリケーションのサーバ側プログラムを実装した…

wxPythonを使ったTwitterのGUIクライアント

2012/12/01 追記:Twitterでは、BASIC認証をすでに廃止してOAuthが必須となっているため、本エントリでのタイムラインの取得は動作しません。wxPythonとtwitter-pythonライブラリを用いてTwitterのGUIクライアントを作った。認証などに関してライブラリによ…

wxPythonでtwitterのタイムライン表示

Pythonのtwitterライブラリのtwitter-pythonとwxPythonを組み合わせてタイムラインを表示させてみた。 あとはpostする機能がつけば簡易なクライアントになりそう。 使うにはソース中のusername,passwordにユーザ名、パスワードを代入して実行する。 # coding…

wxPythonのwx.Panelを使ってマンデルブロ集合を描画

した。wx.PaintDCを使ってPanelの上に描画している。OpenGLのディスプレイリストのような機能がないので(よく探していないので実際はあるかもしれない)、1度の描画にしばらく時間がかかる。なので、計算結果がすぐにみられるようにピクセルの描画の順番を…

wxPythonで簡単なオセロ

wxPythonで簡単なオセロを実装してみた。NPCなし。一人でぽちぽち遊ぶ。石を置けるマスのガイド機能つき。 リバーシの実装が79行で、GUIの実装が98行になった。UI部分が煩雑でちょっと面倒

PyOpenGLでえせPLYファイルビューワ

bunny horsePyOpenGLでPLYファイルのてきとうなパーサを書いてスタンフォードバニーを表示させた。超がつくほどのてきとうな仕様のパーサで色々と決め打ち。法線は描画時に面法線を計算して設定する。・・・いまのプログラムだと法線の方向が逆になる場合が…

PyOpenGLでx,y軸の交換テスト

OpenGLで描画対象となる点のx軸とy軸を交換したい。そこで現在の行列に引数の行列を掛けるglMultMatrixでx,y軸を交換する小さなプログラムを書いた。 ネイピア数の指数関数をプロットしたあとにx,y軸を交換してまたプロットする。 # coding: utf-8 import sy…

バックトラッキングで解いたら

http://okajima.air-nifty.com/b/2010/01/post-abc6.html Lv3らしい。でしょうね・・30分ぐらい。高校生で効率良く解いた方がおられた。 http://d.hatena.ne.jp/qnighy/20100111/1263191078 # coding: utf-8 import sys m = sys.stdin.read().splitlines() #…

Pythonで排他制御を試す

threadingモジュールにセマフォがあるそうな。 LockとRLockの違い、SemaphoreとBoundedSemaphoreの違いがよくわからない。勉強不足だ。http://docs.python.org/library/threading.html?highlight=threading#module-threading # coding: utf-8 import threadi…

pythonで書いたウェブアプリの拡張子を隠す

いつも忘れるのでメモ。pythonで小さなAPI群を開発したとして、urlにpythonスクリプトの拡張子.pyをつけずにアクセスするにはどうすればいいか。http://localhost:8000/api/add.pyのようなurlではなくhttp://localhost:8000/api/addとしたい。こっちのほうが…

Euler Project problem 204 が短く書けてうれしい

ヴァァァー。 ひっそりたまにやってるProject Euler。problem 204が4行で書けたのでうれしい。以下はhttp://odz.sakura.ne.jp/projecteuler/index.php?Problem%20204より。 ハミング数とは, どの素因数も5以下であるような正整数のことである. 最初から順に…

PythonとPILでアスキーアートを画像化

ヴァァァーーーー。http://d.hatena.ne.jp/amachang/20091217/1261029632を見て面白そう!と思いPythonとPILでできないかどうか調べて実装してみました。参考:http://d.hatena.ne.jp/tanakahisateru/20081008/1223450159MacOSX10.5.8で動作を確認しました。…

Pythonで基本ピタゴラス数の生成

import itertools def gcd(x, y): while y: x,y = y,x%y return x def pytanum(): # 基本ピタゴラス数の生成 # [ピタゴラス数] # x^2 + y^2 = z^2 となる (x,y,z) の組 # [基本ピタゴラス数] # x,y,zが互いに素なピタゴラス数 # [基本ピタゴラス数の生成] # …