タグ

pythonに関するruiccのブックマーク (29)

  • 今日からすぐに使えるデプロイ・システム管理ツール Fabric 入門 - 科学と非科学の迷宮

    Fabric は、Python 製のデプロイ・システム管理ツールです。 最近、構築や運用を自動化するための様々なツールが出てきています。 構成管理ツールの Puppet や Chef が有名ですが、使うまでに覚えることが多いのが欠点です。 しかし、Fabric は非常にシンプルなツールで、今からすぐに使うことができます。 Fabric はデプロイ・システム管理ツールで、類似のツールとして Ruby 製の Capistrano があります。 Fabric の最大の特長は、シェルスクリプトを書き慣れた人がいきなり利用できるところです。 シェルスクリプトとしてまとめていたコマンドをそのまま run() メソッドや sudo() メソッドで囲むだけで、使うことができます。 シェルスクリプトを使っていていると、いくつもの問題に遭遇します。 名前空間の管理 変数の扱い 複雑なデータ構造がない(せいぜい

    今日からすぐに使えるデプロイ・システム管理ツール Fabric 入門 - 科学と非科学の迷宮
    ruicc
    ruicc 2013/04/14
  • pandas - Python Data Analysis Library

    pandas is a fast, powerful, flexible and easy to use open source data analysis and manipulation tool, built on top of the Python programming language. Install pandas now!

    ruicc
    ruicc 2012/02/17
  • PythonVsHaskell - Python Wiki

    See also [LanguageComparisons]. Haskell Haskell is a modern functional language (like lisp). It's not commonly used but the language is used for some "real" projects (not just an experimental language) and is becoming more common in industry. For example, the darcs version control system is written in Haskell. More information can be found at http://www.haskell.org/. (Please forgive or correct any

  • メソッド解決順序(MRO)

    多重継承が利用可能な言語では、メソッドを探索するときのベースクラスを探索する順序を、メソッド解決順序(MRO)と呼んでいる。Pythonではメソッドだけではなく、属性の探索でもこれが利用される。単一継承しかサポートしていない言語では、MROはとてもつまらない話題であるが、多重継承の場合には必要となってきて、MROアルゴリズムの選択が極めて難しい問題となりうる。Pythonでは、クラシック、Python 2.2の新スタイル、Python 2.3の新スタイル(C3とも呼ばれる)の3種類のMROアルゴリズムを持っていることが知られている。Python 3では、最後のアルゴリズムだけが生き残っている。 旧スタイルクラスはシンプルなMROの方式を利用していた。メソッドを探す場合には、シンプルに深さ優先探索を行って、ベースクラスの中で最初にマッチしたオブジェクトが返される。例えば、次のようなクラス構造

    ruicc
    ruicc 2011/03/07
    C3線形化
  • Pythonのメタプログラミング (メタクラス) を理解したい人のための短いコード片と禅問答 | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー Pythonのメタプログラミング手法の一つ「メタクラス」は,初心者にとっては「なんか強そう/経験値たくさんもらえそう」なアイテムの最右翼だと思う。反面「どうすればいいか/なにができるか」ということがなかなか理解しづらい。 英語のブログを見ていたら,メタクラスの理解に役立ちそうなちょうどよいサンプルを見つけたので,紹介がてら独自の解説を付け加えたいと思います。 メタクラスを簡単に説明すると,「来コードを書かなければ実現できないような処理を黒魔術的な処理でなんとかしちゃう」ためのテクニックです。コード量を(時には劇的に)減らすことができたり,すっきりした見通しの良いクラス設計を実現できま

    ruicc
    ruicc 2011/03/07
  • Python入門 第4回 Pythonにおけるオブジェクト指向

    # module stack stack = [] def init(): global stack stack = [] def push(data): global stack stack.append(data) def pop(): global stack x = stack[-1] del stack[-1] return x def isEmpty(): global stack return not stack >>> import stack1 >>> stack1.push(1) >>> stack1.push(2) >>> stack1.push(3) >>> stack1.stack [1, 2, 3] >>> stack1.pop() 3 >>> stack1.stack [1, 2] >>> stack1.isEmpty() 0 >>> stack1.init(

    ruicc
    ruicc 2011/03/07
    みんな大人なんだからprivateとか要らないよね説。
  • RubyプログラマがPythonを学び始めて知ったこと10選 ④ - donghai821の日記

    1 クラスのメソッド定義の第一引数には必ずselfが必要。 class MyClass: def my_method(self): # 処理 尚、第一引数の名前は別にselfでなくてもよい。ただ慣習的にselfが使われる。 2 クラスをインスタンス化するには関数表記を使う。 class MyClass: def my_method(self): return 1 m = MyClass() # インスタンス化 m.my_method() => 1 ちなみにメソッドコールの時はselfは不要。暗黙的に現在のオブジェクトが渡される。 3 クラス名の一文字目は小文字でもよい。 よいけど、慣習的に大文字にしてるのだとか class my_class: def my_method(self): return 1 m = my_class() m.my_method() => 1 ちなみにモジュール名

    RubyプログラマがPythonを学び始めて知ったこと10選 ④ - donghai821の日記
    ruicc
    ruicc 2011/03/07
    privateが無いことに驚く。
  • PythonでXMLを操作する - while( life != end ){ do( enjoy ); }

    今の仕事で、RSS形式のURL一覧から指定文字列が見つかるリンクのみを抽出する処理を全てC++で1件ずつダウンロードして、文から検索してっていうアプローチでとてもパフォーマンスが悪い。 だから、ダウンロードせずにサーバー側で抽出を行って、その結果だけを返すようにしようと考えている。 しかも高速にしなければならない。 そこで、PythonからXMLを扱うために色々調べてたら、二十代は模索のときブログさんの所に有益な情報があったので、メモさせて貰います。 PythonでXMLを扱う(1) PythonでXMLを扱う(2) PythonでXMLを扱う(3) PythonでXMLを扱う(4) PythonでXMLを扱う(5) PythonでXMLを扱う(6) PythonでXMLを扱う(7) PythonでXMLを扱う(8)

    PythonでXMLを操作する - while( life != end ){ do( enjoy ); }
  • あなたの知らないPythonのひみつ - atsuoishimoto's diary

    Pythonでは、ループ・try・withブロックは最大20までしかネストできない。 >>> def spam(): ... while 1: ... while 2: ... while 3: ... while 4: ... while 5: ... while 6: ... while 7: ... while 8: ... while 9: ... while 10: ... while 11: ... while 12: ... while 13: ... while 14: ... while 15: ... while 16: ... while 17: ... while 18: ... while 19: ... while 20: ... while 21: ... print "Deep!" ... SystemError: too many statically n

    あなたの知らないPythonのひみつ - atsuoishimoto's diary
    ruicc
    ruicc 2011/03/01
    なんだってー
  • 映画「The Social Network」の脚本をNLTKで解析して遊んでみた - ぬいぐるみライフ?

    ※この記事には映画「The Social Network」のネタバレがそれなりに含まれています.これから映画を観る予定の方は逃げた方が賢明です. 最近ブログで宣言した通り,入門 自然言語処理を読みつつPythonのNLTK(Natural Language ToolKit)を使った自然言語処理について勉強中.入門 自然言語処理はPythonをロクに触ったことがない私でもちゃんと理解しながら読み進められるようになっているのが嬉しい. ところで,少し前に映画「The Social Network (ソーシャル・ネットワーク)」を観て,登場人物の台詞や行動がなかなか面白くて気に入ったのだけど,この脚映画の公式サイトで公開されていることを最近知った.映画の脚となると,特徴的な表現が多く文章数もそれなりにあるので,興味深いコーパスになり得るのではないかと思う. というわけで,NLTK習い立ての

    映画「The Social Network」の脚本をNLTKで解析して遊んでみた - ぬいぐるみライフ?
  • Pythonドキュメントの日本語訳のPDFがすごい - 偏った言語信者の垂れ流し

    先日公開されたPythonドキュメントの日語訳のPDFがすごい。なにがすごいって、ページ数が合わせて3000ページぐらいあるところが。 ダウンロードファイル一覧 - Python Japanese Environment - OSDN いつもお世話になってます。ドキュメントの著者、翻訳者の方々に感謝。 追記 このPDFはSphinxというドキュメンテーションシステムを使って出力されてます。 オリジナルはreStructuredTextという形式のテキストファイルです。 Overview — Sphinx 1.4.3 documentation Sphinx-Users.jp — Python製ドキュメンテーションビルダー、Sphinxの日ユーザ会 Google Project Hosting

    Pythonドキュメントの日本語訳のPDFがすごい - 偏った言語信者の垂れ流し
  • Python decorator

    python のデコレーター構文 @decorate 解り難い @decorate 構文 Python のデコレーターは理解するのが厄介です。Python のデコレーターは syntax sugar の機能と closure の機能の二つを使って関数オブジェクトを修飾する構文です。でも closure の概念がない C/C++Java などの 言語から python も使うようになった者に、三重にネストした関数と @decorator 構文を組み合わせたコード例を使って解説されたのでは脳みそが沸騰するだけです。 私は @decorator を使ったコード例の python virturla machine コードを追跡することで、やっとこさデコレーターを理解しました。私の味わされた苦労を軽減してもらうため、この web page をまとめてみます。 デコレーターを理解した後で考え直し

  • Pythonで末尾再帰最適化をする。 - IT系で覚醒めたい

    Pythonは最強ですね。文法はチョー簡単、ライブラリも充実度がすごい、それでいてメタプログラミングができる。そのメタプログラミングを使うと末尾再帰最適化までできるそうです…おそろしやNew Tail Recursion Decorator « Python recipes « ActiveState Code class tail_recursive(object): def __init__(self, func): self.func = func self.firstcall = True self.CONTINUE = object() def __call__(self, *args, **kwd): if self.firstcall: func = self.func CONTINUE = self.CONTINUE self.firstcall = False try:

    ruicc
    ruicc 2011/01/18
    id:tyru schemeは末尾最適化が仕様に組み込まれてるらしい http://en.wikipedia.org/wiki/Scheme_(programming_language)
  • Python による日本語自然言語処理

    はじめに この文書は、 Steven Bird, Ewan Klein, Edward Loper 著 萩原 正人、中山 敬広、水野 貴明 訳 『入門 自然言語処理』 O'Reilly Japan, 2010. の第12章「Python による日語自然言語処理」を、原書 Natural Language Processing with Python と同じ Creative Commons Attribution Noncommercial No Derivative Works 3.0 US License の下で公開するものです。 原書では主に英語を対象とした自然言語処理を取り扱っています。内容や考え方の多くは言語に依存しないものではありますが、単語の分かち書きをしない点や統語構造等の違いから、日語を対象とする場合、いくつか気をつけなければいけない点があります。日語を扱う場合にも

  • PythonのUnicodeEncodeErrorを知る - HDEラボ

    Pythonにはじめて触って、いつのまにか1年が過ぎたのですが、一番はまったのは、やっぱりunicodeの扱いだったと思います。 特に、 UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-12: ordinal not in range(128) のようなエラーにはさんざん悩まされました。ここがたとえばrubyなど他の言語と比べてわかりにくいために、Pythonが取っつきにくい言語になっているのではないか、と個人的には思います。 そこで、このエラーに関係するはまりどころとTipsをいくつか列挙してみました。これからPythonに触れられる方の参考になればと思います。 なお、環境はUNIX上のPython 2.4, 2.5を想定しています。 u1はunicode型で、s1はstr型です。s1にどのよ

  • yebo blog: PyPyはPythonの未来だ

    2010/05/17 PyPyはPythonの未来だ Alex Gaynor氏のブログでPyPyを紹介していた。Pyhonを利用しているほとんどのが人はCPythonを利用しているが、これから「PyPy」に向かうようになるだろうとのことだ。PyPyは速度を向上させ、より柔軟性を提供し、Pythonの成長のより良いプラットフォームになる。改善の余地はあるが、PyPyはJITコンパイラの搭載により多くのタスクでCPythonよりも速いことがベンチマークから分かる(但し、JITは非常に大量のメモリを消費する)。柔軟性に関していえば、インタプリタRPythonで書いたコードをCやLLVMなどの言語に変換することができる。またスタックレス(Cスタックを使わないため、自前のスタックを使う)での実行が可能。最後に map の実装を比較している(Pythonで書いた方が短く分かりやすい)。 投稿者 zub

    ruicc
    ruicc 2010/05/17
  • Python基礎文法最速マスター - D++のはまり日誌

    ↓に便乗してPython版も書いてみました。 Perl基礎文法最速マスター - Perl入門〜サンプルコードによるPerl入門〜 Ruby基礎文法最速マスター - Route 477 PHP基礎文法最速マスター - Shin x blog ほとんど上記の記事と同じような内容で書いたのでPython入門記事としては色々抜けていたりしますがご了承ください。 Pythonは現在3.x系がリリースされていますが記事では基的にPython2.6について書きます。 参考文献: 初めてのPython (asin:4873113938) Python Documentation Index http://www.python.org/doc/ Python 和訳Document http://docs.python.jp/2/ 0. 対話環境として使う 対話環境 pythonはそのまま実行すると対話環

    Python基礎文法最速マスター - D++のはまり日誌
  • PythonでA*(A-Star)アルゴリズム - Pashango’s Blog

    今回はA*アルゴリズムをPythonでやってみます。 ゲームプログラマの間では、もはや常識となりつつある最短経路問題解決アルゴリズムです。 A*は、古典的手法である「ダイクストラ法」を改良したものです。 スタート地点からノードnを通ってゴールに辿り付くとき、最短距離をf(n)とすると、 f(n) = g(n) + h(n) とすることができます、g(n)は「スタートからノードnまでの最短距離」、h(n)は「ノードnからゴールまでの最短距離」です。 でも、最初から適切なg(n)とh(n)が判ってるなら苦労しませんよね。 だから、テキトーな予測値を使って、最短経路をある程度予測して効率的に経路探索をしてみようという事です。 テキトーな予測値を使った最短経路距離をf*(n)とすると f*(n) = g*(n) + h*(n) となります、f*(n)を求めるためにテキトーなg*(n)とh*(n)を

    PythonでA*(A-Star)アルゴリズム - Pashango’s Blog
  • Pythonを快適に編集できるようvimを設定する - 玉虫色に染まれ!!

    今日はさっくり小ネタ。 最近私はPythonを勉強中なのですが、「このての軽量言語はさっと書いてさっと実行できなきゃだめ」という信念のもと、編集にはvimを使っています。 とはいえ、Pythonは実はかなり「エディタを選ぶ」言語です。インデントによってブロックを表現するので、インデントがきちんと表示されないと困りますし、タブとスペースが入り交じってしまわないようなエディタの補助も欲しいところです。 というわけで、今日は、そんなPythonをすっきり快適に編集できるような vim の設定をご紹介します。 いきなり結論 私は以下のような記述を ~/.vimrc に追記しました。 autocmd FileType python setl autoindent autocmd FileType python setl smartindent cinwords=if,elif,else,for,wh

    Pythonを快適に編集できるようvimを設定する - 玉虫色に染まれ!!
  • Pythonがプログラミングの学習に向いているたった一つの理由 | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 みんなのブロックチェーンは,ブロックチェーンの入門書。暗号やハッシュなどを含め,基礎からブロックチェーンの仕組みを学べる書籍です。 いろんな方に「新しい技術を学ぶことの楽しさ」を感じ取ってくれたら著者として嬉しいです:-)。お金技術的にどのように定義されるのか。 みんなのIoTは,モノのインターネットと呼ばれるIoTの入門書です。IoTの基について,読者に寄り添って優しく解説しました。裏テーマは一番とっつきやすいPython入門書。サポートページはこちら みんなのPython 第四版は,より分かりやすい入門書を目指し,機械学習やデータサイエンスの章も追加して第三版を大幅に書き換えました。Python 3.6にも華

    ruicc
    ruicc 2009/04/16
    思考との距離が離れている言語はたくさんあるけど、そのギャップを埋める労力が可読性に注がれているてのがポイントと。なるほど。