どう書く?

与えた条件を満たす候補

どう書く?org: 与えられた条件を満たす候補 (http://ja.doukaku.org/43/) Pythonでは演算子の優先順位が高い方から順に not x and y x or y のようになっているらしい。つまり、以下の式は True or False and False True or (False and False)と評価される。…

str.startswith が遅い件

どう書く?org 実行時間の測定 (http://ja.doukaku.org/22/) デコレータに対応するようにして、時間計測。 import time def profile(func): def foo(*a, **k): t = time.time() r = func(*a, **k) print '%s: %g sec elapsed' % (func.__name__, time.time() …

メソッド名一覧の表示(2)

以下を修正。 cls.__bases__で、1つ上の階層のベースクラスしかとれていなかったので、再帰的にベースクラスを探すようにした。 継承階層で同じ名称のメソッドをオーバーライドしていた場合、一番子供側のメソッドを呼び出すようにした。 新型クラスに対して…

メソッド名一覧の表示

どう書く?org メソッド名一覧の表示 (http://ja.doukaku.org/32/) 自分で投稿した関数を少し書き換えたものを掲載。時間計測してEAFPは少し遅いのでやめた。name[:5] == 'test_' は、name.startswith('test_')より速かった。たまたまかな? 以下の特徴を持つ…

リストを逆順に表示

リスト状のものを逆順に表示するプログラムを書いてください。 解答。 def rprint(L): i = 0 while True: i -= 1 try: yield L[i] except: break for n in rprint([1,2,3,4,5]): print n EAFP(ゴメンナサイはオネガイシマスより楽)を利用して書いた。いつか…

ジェネレータと再帰

ピラミッドを作る - どう書く?org (http://ja.doukaku.org/8/) ピラミッドを作る問題を考えていて、ジェネレータと再帰を組み合わせる処理を書いていたら、yieldした関数の中で再帰関数を呼び出せなかった。 >>> def pyramid(n): ... def rec(mark=1, space=…

投稿エラー

今日、どう書く?orgのお題を投稿したらerror 500が出て投稿できなかった。いくつか解答を投稿したが、なかなか面白く勉強になる。やはりJavaは冗長なのが面白い。Haskellも結構冗長だなあ…。

どう書く?org

にしおさんのどう書く?orgがalpha版として公開されていた。 どう書く?org (http://ja.doukaku.org/) まだ参戦していないが、バイト数や実行速度やメモリ量など定量的なデータで勝敗が自動的に表示されても面白いと思った。但し、実行速度など言語や処理系…