読者です 読者をやめる 読者になる 読者になる

いろいろ備忘録日記

主に .NET と Python絡みのメモを公開しています。

マルチバイトを考慮した文字幅を取得

スクリプト書いていると、等幅フォント上で全角半角混じった文字列をピシッと 揃えたいときがよくあります。pythonのlen()は文字数を返すので、それでイケルと思ってしまいますが s = 'hello' len(s) 5 # OK s = 'こんにちわ' len(s) 5 # (´・ω・`) max_widt…

シーケンスを特定数のチャンクに分割

どの言語でもちょくちょく使う特定の数のチャンクに分割する処理のPython版。 いつも忘れてしまうのでメモメモ。 def chunks(sequence: Sequence, chunk_size: int = 1) -> Iterator[Any]: """ 指定されたシーケンスを指定されたチャンクに分割します. :para…

PyCharm 3に無償版 (Community Edition) が登場 (JetBrain, IDE, Python)

Pythonの開発環境として有名なJetBrainのPyCharmに無償版が登場していたので 忘れない内にメモメモ。 PyCharm 3 http://www.jetbrains.com/pycharm/ ダウンロードページに進むと、Pro版とfree版のダウンロードが選べます。 機能的には、当然違いがあって、We…

Python 2.7リリース (Python2系の最後のメジャーバージョンリリース)

ネタ元は、マイコミジャーナルさん。 メモメモ。 Python 2.7登場、2系最後のメジャーリリース http://journal.mycom.co.jp/news/2010/07/06/027/index.html Python 2.7 Release http://www.python.org/download/releases/2.7/ ついに、Python2系も最後のリリ…

unladen swallow (CPython, 高速化, Google)

大分遅いですが、今日知りました・・・。 メモメモ。 一言でいうと、現在のPython実装の高速版を作成することを目標としている プロジェクトという事になりますね。LLVMを利用して行う模様です。 且つCPythonとの互換性を維持する事も明言されています。 処…

Python 3.0 がリリース

Python 3.0がリリースされましたね。 今回の目玉はなんといってもUnicodeへの全面対応でしょう。 日本のユーザには使いやすくなった感じですね。 ただ、後方互換性がないので、前のスクリプトがそのまま 動かない可能性が高いみたいです。 以下リソース。 ht…

Python 2.6

リリースされたみたいです。 マルチプロセス機能などが強化された模様です。 以下、リソース。 http://codezine.jp/article/detail/3131 http://python.org/download/releases/2.6/

python関連のメモ

以下、自分用のメモです。よく忘れるので・・・w1.string.Template 簡易テンプレートエンジンみたいなもの。元から言語についているモジュールなので 利用が簡単。 import string print string.Template('hello $user.').substitute(user='gsf_zero1') 参…

IronPython開発入門(@IT)

@ITにて、IronPythonに関する記事が載ってました。 IronPython開発入門 http://www.atmarkit.co.jp/fdotnet/special/ironpython01/ironpython01_01.html とりかえず、メモメモ。 今回は、前編みたいです。 元々、pythonを良く使う人間なのでIronPythonの存在…

IronPythonで参照が必要なDLLの利用方法 (clr, AddReferenceByPartialName)

IronPythonにて、.NET環境で参照を追加する事が必要なDLL (System.Windows.Forms, System.Transactionsなど) を利用するには、以下のようにします。 import clr # # 参照が必要なDLLを参照追加します。 # clr.AddReferenceByPartialName('System.Windows.Fo…

Python 3.0a1 リリース

ついに、Python3000の最初のリリースであるアルファ版がリリースされました。今回のバージョンアップで、かなり基本的な部分が変わるので後方互換性は 損なわれるみたいですが、それなりの価値はありそうですね。 以下、参考リソースです。 スクリプト言語「…

TurboGear1.0.2.2リリース

いつの間にか、TurboGearのニューバージョンがリリースされてる・・ 今日、気づきましたw 今回のバージョンから、2.5に対応したみたいです。 まってましたって感じですね。 TurboGear http://www.turbogears.org/

Python情報へのリンク

Python入門にいい感じの情報へのリンクをまとめてくださってます。 忘れないうちにメモメモ。Python入門サイトのまとめ(From pythonでつくるskyfish開発ブログさん)

IPythonの%magic(マジックコマンド)について-1

前回、IPythonのMAIN FEATURESの抜粋をやったので、 今度は、マジックコマンド(%magic)の抜粋です。 メモ程度です。(^.^;; %Exit -- 確認なしでIPythonを終了. %Pprint -- pretty printingをON/OFFする. %Quit -- %Exitと同じ. %alias -- エイリアスを定義し…

IPythonの主な機能

?コマンドで出てくるヘルプ(MAIN FEATURES)から抜粋。適当に訳していますので 間違っている可能性は大です。こんな感じと思ってください。 通常のpython helpシステムへのアクセス。(helpコマンド) マジックコマンド(IPython独自の便利なコマンドの事。%comm…

デコレータの利用

python2.4から、デコレータという概念が追加されています。 デコレータとは、GoFのデザインパターンにある名前のやつと同じく なにかを修飾する機能を持つものです。pythonの場合は、 デコレート対象が関数およびメソッドになります。 見た目的には、javaの…

setの利用

python2.4から、コレクションオブジェクトとしてsetの概念が追加されています。 以前から、リストとハッシュ(辞書)とタプルなどが存在していましたが そこにsetも加わったという事になります。 javaをやっている人などは、分かると思いますがsetとは、重複が…

IronPythonのメモ

かなり、便利なIronPython君。 まだちょっとしか触っていないのですが、.netの動作確認するのとかには もってこいです。コンパイルの必要もないですしね。ちょこっとしたメモです。 IronPythonを.net組み込み状態にする。 import clr clrモジュールをインポ…

SQLAlchemy入門記-02 (エンジンの作成およびメタデータの作成)

前回インストールを済ませましたので、いよいよ使用してみましょう。 SQLAlchemyでは、以下2つの方法でデータベースにアクセスできます。 テーブルそのものを表すオブジェクト(テーブルオブジェクト) ドメインオブジェクト(つまり、テーブルオブジェクトと…

SQLAlchemy入門記-01 (インストール)

SQLAlchemyは、pythonで利用できるORMの一つです。 Data Mapperパターンによる設計方針で作成されており、同じくpythonで利用できる ORMの一つのSQLObjectは、ActiveRecordパターンです。 SQLObjectもそうですが、動的言語(pythonやruby)とORMの組み合わせは…

個人的によく使う外部モジュール

Pythonは、ビルドインライブラリが充実しているので、 そんなに外部ライブラリに頼る必要はないかもしれないのですが、 私の場合、Pythonをインストールしたら以下のものは必ずインストールしてます。とりあえず、箇条書きで。 EasyInstall(Debianのaptみた…

IPythonの設定ファイル

IPythonには、設定ファイルが存在していまして Windowsの場合は、ホームディレクトリに"_ipython"という ディレクトリが出来上がっているはずです。 その中に、 ipythonrc.ini というファイルがあります。これがIPythonの設定ファイルです。 この中に設定を…

IPython

ここを見て、インストールしてみました。 これ、めっちゃ便利!! windowsのコンソールでpythonを使う場合は、補完がきかなかったので 使いづらかったのですが、これで解消です。 (IDLEもあるのですがちょっともたつく感じがするのであまり使いません) Pytho…

Pythonの本

日本人によって、書かれたPython本がいつのまにか出てたんですね〜。[FROM papa33の日記] http://d.hatena.ne.jp/papa33/20060823#p1 私は、初めてまともに使った言語がPythonでした。 JAVAも同じく触っていたんですが、オブジェクト指向って ものが全然わか…

最近気になるフレームワークおよびツール

前から知ってはいたんですが、未だに手をだせずじまいなもの。 OpenLaszlo http://www.openlaszlo.org/ http://laszlo.jp/ Echo(Echo2) http://www.nextapp.com/platform/echo1/echo/ http://www.nextapp.com/platform/echo2/echo/ Wicket http://wicket.sou…

範囲(range)オブジェクト作成方法

[各言語での範囲(range)オブジェクト作成方法](1) groovy a = 1..10 a.each{ print it + ' '} #=> "1 2 3 4 5 6 7 8 9 10" もしくは (1..10).each{ print it + ' '} #=> "1 2 3 4 5 6 7 8 9 10" (2) ruby a = 1..10 a.each{ |v| print v.to_s + ' '} #=> "1 …

数値から文字列へ変換

[数値文字列から変換]組み込み関数のintを使用する. 10進数以外は明示的に基数を設定しなければならない.s = '10' print int(s) #=> 10s = '0x0a' print int(s, 16) #=> 10s = '012' print int(s, 8) #=> 10s = '0b1010' print int(s, 2) #=> 10 =====…

数値表現

[Pythonでの数値表現](1) 10進数 num = 10 #=> 10 (2) 16進数 num = 0x0a #=> 10 (3) 8進数 num = 012 #=> 10 (4) 2進数 2進数だけ下のようにしないとうまくいかなかった・・・ 他のやり方がある場合はご教授を(´ー`) int(str('1010'), 2) #=> 10 ====…