タグ

Pythonとあとで書くに関するrawwellのブックマーク (17)

  • METHINKS IT IS A WEASEL - はてブロ@ama_ch

    どう書くorg:METHINKS IT IS A WEASELより、yattomさんの解答を読ませて頂きました。 勝手にコメントで解説?します。解説というかメモかな。 お題: ランダムな文字からMETHINKS IT IS A WEASELを作るプログラムを作れ。 簡単に流れを書いてみます。 1:ランダムな20文字を持つ文字列をもった300個作ります。 2:その文字列が"METHINKSITISAWEASEL"に近いものからソートします。 3:それぞれの文字列のなか1文字を別の文字に変化させたものを3つ用意します。 4:それを2:のソートをして上位300個残す。(900個あるうちで上位300個残すということです。) 5:以後3:と4:を繰り返す。 ランダムな文字変化は大文字だけでいいです。簡単にするために空白文字を外してあります。 METHINKS IT IS WEASELができたら終了。

    METHINKS IT IS A WEASEL - はてブロ@ama_ch
  • python-twitterで遊んでみた 基本編 - はてブロ@ama_ch

    python-twitterで遊んでみたよ!とりあえず基的な使い方のお勉強。 ちなみにドキュメントはここにあるからね! http://static.unto.net/python-twitter/0.5/doc/twitter.html モジュールの機能自体シンプルだから、ドキュメントも短くて読みやすいです。僕の英語力だと半分くらいしか理解できないけど>< まずはimportから >>> import twitter >>> api = twitter.Api("ユーザー名", "パスワード") とりあえずアカウント情報を登録してあげます。これをしないと、色んな機能が使えません。 フレンドリストを取得 users = api.GetFriends() >>> for cnt, i in enumerate(users): ... print cnt, i.name ... 0 nipot

    python-twitterで遊んでみた 基本編 - はてブロ@ama_ch
  • ABCとインターフェイス - Doge log

    http://enbug.tdiary.net/20090322.html#p01の話だけど。 個人的には両方必要じゃね?と思うんだけど。 まあjavaのような使い分けをする前提ならばだけどね。 そもそもごった煮でどちらかにするとかいう方が間違いなんじゃないかと思うけど。 まあpython文化的に覚えることを増やしたくないとか、明確な使い分けの方法を提示し、PEPに書くのがしんどいとかあるのもわかる。 現状だと使うにしてもどっちつかずで ABCは2.6以降からじゃないとダメ インターフェイスだとzope.interfaceを別途入れてやら無いといかん というめんどくささを抱えてるので「つかわねーよ!バーロー!」という話もあったりする。

    ABCとインターフェイス - Doge log
  • ABCとインターフェース - enbug diary(2009-03-22)

    _ ABCとインターフェース 先日Zope 2.12のalpha1がリリースされて、 いろいろ面白いことになっているので、 手元で遊んでみていました。 Zope 2.12自体でも、Zope 3のオブジェクトがそのまま使えるようになったりとか(aq_parentとかをハックしている)、いくつか楽しい変更があるんですが、Python 2.5/2.6をサポートしたのはかなり大きな進展です。 残念ながら手元の環境のRPMPython 2.5.2なので、Zope 2.12が対応している2.5.4 or better、2.6.xという条件に当てはまりません。 面倒くさいので、手っ取り早く2.6.1をダウンロードしてきて、手元でビルドして使ったんですが、一応動いているように見えます。 Zope自体の話を書いてもいいんですが、ここではPython 2.6の話を書きます。 せっかく最近のPythonが使え

  • RE: 美人時計の画像ファイルが欲しい - Djangoへの片思い日記

    http://d.hatena.ne.jp/Yamashiro0217/20090310/1236674979 のはてぶのタグに何故か Python タグがあったので、 これは Python で書けって事かなぁと思って書いてみました。 import sys,os,urllib,time;[[[globals().__setitem__('url','http://www.bijint.com/jp/img/photo/%02d%02d.jpg' % (i, j))] and [globals().__setitem__('file',open(os.path.basename(url), 'wb'))] and [file.write(urllib.urlopen(url).read())] and [file.close()] and [time.sleep(5)] for j in r

    RE: 美人時計の画像ファイルが欲しい - Djangoへの片思い日記
  • virtualenv - Doge log

    最近、流行りのvirtualenvですが、仕組み的なものにあまり触れられてないように 思えたので書いてみます。 機能 とりあえずvirtualenvの機能は ライブラリがまっさらな状態な環境を作る 作られた環境に対してのみモジュールをインストールできる です。 これを実現する仕掛けはそれほど難しくありません。 (virtualenv自体も基的に1ファイルのモジュールです。) とりあえず簡単に見ていきます。 ライブラリパス まっさらなライブラリを持った状態のpython環境はどうやって作るのでしょう? pythonは自分自身のパスの上位のlib/pythonx.xをライブラリとして認識します。 (pythonをソースからprefix指定でビルドした事があればわかると思います。) . |-- bin | `-- python `-- lib `-- python2.5 `-- ここが標準ライ

    virtualenv - Doge log
    rawwell
    rawwell 2009/03/04
    "virtualenvの機能は * ライブラリがまっさらな状態な環境を作る * 作られた環境に対してのみモジュールをインストールできる"
  • 2008-10-31

    Intel Core2 Duo CPUマシンでmultiprocessingモジュールを使用した場合としない場合の実行時間を比較した。Pythonは3.0を使用。2.6でもOK。 from multiprocessing import Process import time def fib_n_times(cnt): for i in range(1, cnt+1): print('%d => %d' % (i, fib(i))) def fib(n): if n == 0 or n == 1: return n else: return fib(n-1) + fib(n-2) def multi(nfib, ntimes=2): t = time.time() ps = [] for i in range(ntimes): p = Process(target=fib_n_times,

    2008-10-31
    rawwell
    rawwell 2008/11/01
    この方法の最大の問題は、.pyxとctypesによる関数の変数のやりとりが面倒な場合は、その部分のコードが複雑になってしまうということである。例えば、CではPythonの辞書を使用できないので、.pyxの中でCの関数が理解できる
  • Python プログラミング

    C++ のクラスと Python のクラス C++Python の大きな違いは、前者がコンパイラ向け、 後者がインタプリタ向けの言語であるということ。あたりまえだけど。 C++ では「クラス」はあくまで、ヘッダファイルなどでの「定義」であって、 コンパイラにかけるときには、実際にその定義されたコードが実行される ことはない。これもあたりまえ。 一方、Python はインタプリタなので、「クラス」文はいきなり実行されている。 もうちょっと具体的に言うと、: 1: class foo(object): 2: def bar(self): 3: print 'Hello, world!!' 4: 5: x = foo() 6: x.bar() 上記のような Python のプログラムがあったとき、C++ の感覚だと、 5行目から実行されているような気がする。で、foo() で foo クラ

    rawwell
    rawwell 2008/10/31
    * ビルトイン型 o ビルトイン型一覧 * メタクラスプログラミング o C++ のクラスと Python のクラス o class 文を使わないでクラスオブジェクトを作る
  • http://sky.ap.teacup.com/shibu/69.html

  • 2008-10-19

    Lisp プログラマのための Python 入門 (http://www.unixuser.org/~euske/doc/python/python-lisp-j.html) を読み直していて、PythonでLispのような連結リストを表現するのは (1, (2.0, ("three", None))) とあったので、これを基にして自分の「car, cdr, consと無限リスト」(http://d.hatena.ne.jp/morchin/20080924#p1)で作ったサンプルを実装しなおしてみた。ここでは、LispやHaskellのリストをConsリストと呼ぶことにする。 def car(seq): return seq[0] def cdr(seq): return seq[-1] def cons(x, xs): return [x, xs] def list_to_cons(s

    2008-10-19
    rawwell
    rawwell 2008/10/21
    PythonでLispのような連結リストを表現するのは (1, (2.0, ("three", None))) とあったので、これを基にして自分の「car, cdr, consと無限リスト」で作ったサンプルを実装しなおしてみた。ここでは、LispやHaskellのリストをConsリストと呼
  • XREAでPyhonを実行してみる - purazumakoiの[はてなブログ]

  • 時間城年代記:メタクラスで遊ぶ(1)

    今の世の中、オブジェクト指向プログラミングは当たり前だ。 しかし、じゃ「メタクラスは?」と聞かれて即答できる人は、ある程度の勉強家だろう。 なぜか……昨今の「オブジェクト指向プログラミング言語」の主流格であるC++にもJavaにも、メタクラスは存在しないからだ。 無論、Smalltalkerなら「当然」なので、鼻で笑われるだろう。 なんせ、クラスを作るには、メタクラスのインスタンスを作らなければならないからだ。 つまり、メタクラスとは、クラスオブジェクトのクラス、すなわち「クラスのクラス」だ。 正式には、あるオブジェクトがあると、そのクラスのクラスがメタクラス、ということになる。 クラス自身がオブジェクトである言語でなければ、メタクラスが存在するわけない、という意味はご了解できただろうか。 Perl風Smalltalkを標榜するRubyには、メタクラスは当然ある。 では、我らがPython

  • Parallel Pythonで分散処理

    Erlangでなくて、Pythonで分散処理を書く意義はなんだろうかと考えた。 Erlangはたしかに分散処理が得意なんだろうけど、いろいろ調べた感じでは、複雑な数値計算などの分散処理には向いていないというウワサだ。良く知られているTwitterや通信の例のようなシンプルな処理を膨大な量さばくにはいいようだけど。 計算を分散で行う場合、来はGoogleが採用しているように、C++をベースにすべきだろう。 (ただし、GoogleではSawzallという独自言語で記述し、それをC++に変換して実行するそうな。) そうなると、「なぜPythonで分散処理?」というのが重要になる訳だが、おそらく以下のようなことだろうか。 既存の豊富なモジュール(しかも多くはCで書かれている)を使える。C、C++で書かれたルーチンをswig等でPythonに連結し、それを分散させれば、実質C、C++で実行している

  • Python Performance Tips (Python パフオーマンスTIPS)

    Python Performance Tips このページはPythonプログラムの実行効率を改善するさまざまなTipsやトリックの紹介に特化しています。誰から得た情報であっても、その情報源を紹介するつもりです。 "fast python"ページをはじめて書いた1996年以降も、Pythonは著しく変化してきました。このことは、幾つかの規則も変化しているということを意味しています。そこで、他の誰かがこのページのメンテナンスを手伝ってくれるという期待をもって、ページをPython wikiに移動させました。 注意:これらのTipsはいつでも、読者のアプリケーションや、実際に使用するバージョンのPythonで盲目的に受け入れるだけでなく、実際に試してみることができます。 これらの新しく独自に書かれたパッケージ、例えば Pyrex 、 Psyco 、 Weave や PyInline のようなも

  • 連想検索エンジン reflexa API を Python から使ってみる2 - 銀月の符号

    先日の連想検索エンジン reflexa APIPython から使ってみる モジュールを手直し。 使い方 reflexa_search に検索したい文字列を渡します。連想された語を Unicode 文字列で返してくるジェネレータが得られます。 for 文で回したり list で変換したりしてあげてください。 >>> from reflexa import reflexa_search >>> for s in reflexa_search(u'Python'): ... print s Monty Python ニシキヘビ (中略) factorial WideStudio PythonLabsスクリプトとしても使用可能です。手抜き実装ですが・・・(汗 C:\>python -m reflexa "初音ミク" VOCALOID クリプトン・フューチャー・メディア (後略) refle

    連想検索エンジン reflexa API を Python から使ってみる2 - 銀月の符号
  • ディスクリプタパッシング自分用メモ - Doge log

    python2.6 親はメインのacceptに専念。 子プロセス側でecho処理。 from multiprocessing import _multiprocessing import os import socket import time class FDDispatchServer(object): def __init__(self): self.is_child = None def fork(self): pid = os.fork() if pid > 0: self.is_child = 0 else: self.is_child = 1 def ready(self): if self.is_child: self._child_ready() else: self._parent_ready() def _parent_ready(self): time.sleep(

    ディスクリプタパッシング自分用メモ - Doge log
    rawwell
    rawwell 2008/10/08
    from multiprocessing import _multiprocessing
  • 2008-02-09

    pythonc++のインターフェイスを作る方法には boost.pythonを使う方法 swigを使う方法 python.ctypesを使う方法 f2py (Fortranを使うためのInterface)を使う方法 pyreを使う方法 直接Cのインターフェイスを作る方法 があるようだ。 http://www.scipy.org/Cookbook のUsing NumPy With Other Languages のセクションにさらに詳しい解説がある。 ここでは特に配列(numpyの行列)をc++と連携して使う方法に注目していくつかの方法を比較する。numpyは数値計算や行列演算を行うpythonのパッケージでnumarrayの後継にあたる。numpyはnumarayと違って行列が配列の先頭ポインター(double *array)を渡すだけでc++とやりとりができる。そのためc++との連携

    2008-02-09
    rawwell
    rawwell 2008/10/02
    『pythonとc++のインターフェイスの比較』
  • 1