python

笑顔がいっぱい

Smileys Triangle に挑戦。 ちょっと趣旨を違えているような気もするけど、短くできたからいっかなーと(^ ^;; print ':\n:-' for i in range(32):print ':-)'+'))'*i 実行結果。 size: 52 time: 0.089752 sec status: 0 22位。初めて名前が乗った! 22 t2y-1…

Python の split() の仕様

ディスクスペースの使用状況を取得する でたまたま気付きました。split() の動作をまとめたいなと思っていたら、良い記事を発見しました。私が気付いたの以下の内容ですが、幾つかの動作や他言語の動作についても書かれています。 分割パターン省略時は空白…

Python の対話型プロンプトで補完機能を使う

メーリングリストに目を通していて、補完機能の存在について知りました。以下の2行でさらっと使えます。 >>> import readline, rlcompleter >>> readline.parse_and_bind('tab:complete') 例えば、リストの(特殊)メソッドを調べるには "L." の状態で TAB を2…

Python コードのスタイルガイド

個人的に参考になった内容やよく使う(よく迷う)内容を備忘録的に引用します。Python のスタイルガイドは PEP(Python Enhancement Proposal) 8 で提案されています。 Style Guide for Python Code Style Guide for Python Code(和訳) インデント インデント 1…

再帰的にディレクトリを探索する

呼称: 再帰的なディレクトリ探索 + ファイルマッチング 目的: あるディレクトリ配下にある特定のファイルを抽出する 特徴: 正規表現を用いてファイルマッチングを行う 用例: 設定ファイルやモジュールの検索 備考: os.walk() は python 2.3 以上でのみ有効や…

メッセージダイアログボックスを表示する

呼称: メッセージダイアログ表示のサンプル 目的: メッセージダイアログを表示し、そのダイアログ内のボタンの返り値を取得する 特徴: ダイアログをモーダル表示してベース画面の背面へ回り込ませない 用例: ユーザへの確認やワーニング/エラー検出の有無を…

ファイルの md5sum 値を取得する

呼称: ファイルの md5sum 値の取得 目的: md5sum 値の算出 特徴: ファイル操作の例外処理の方がやや煩雑(- -# 用例: ? 備考: ファイルは md5sum コマンドを使った方がてっとり早い? #!/bin/env python import md5 def get_md5sum(filename, buff=4096): de…

ディスクスペースの使用状況を取得する

呼称: ファイルシステムのディスクサイズ取得 目的: df コマンドの特定の出力を取得したい 特徴: df コマンドへパスを渡すことで、そのパスを含むパーティションの情報が取得できる 用例: 大容量ファイルのインストールやコピー時の空きサイズチェック 備考:…

標準入力の基本 : 2

呼称: 標準入力の取得2 目的: プロンプトを表示して標準入力を取得する 特徴: 改行コードの取扱いがポイント 用例: 対話的な標準入力は raw_intput()、パスワード取得は getpass() 備考: 標準入力から1行のみの取得にも使える、また改行コードは除去される #…

入力文字列のセグメントを出力する

segs に兆戦。 再帰的に解けそうで解けなかった(T T)、この手の問題はスライシングがとても便利。 s = raw_input() def f(s, n): for i in range(1, n+1): print s[:i] for i in range(1, len(s)+1): f(s[-i:], i) 実行結果。 size: 115 time: 0.072996 sec …

珠玉のプログラミングのお題を python で書いてみた : 5

#!/bin/env python """ 3.3 a variety of array sample(P34) date calculate function """ from datetime import * def search_date(basis, days): return basis + timedelta(days - 1) if __name__ == '__main__': d = date(2004,1,1) print search_date(d,…

速習 SQLAlchemy の基本

WEB+DB PRESS Vol.46作者: 大塚知洋,吉津卓保,角田直行,藤本真樹,松原敦,大谷弘喜,杵渕聡,西田圭介,田中洋一郎,ミック,伊藤直也,梶原大輔,衣笠嘉展,天野仁史,久松慎一,nanto_vi,武者晶紀,縣俊貴,下岡秀幸,山本陽平,高林哲,小飼弾,はまちや2,WEB+DB PRESS編集…

rpm プログラミング with python を読み砕く : 3

引用元ドキュメントから自分勝手に要点のみを抜粋 パッケージをインストール/アップグレードする RPM システムではパッケージをインストールしたり、アップグレードしたりする方法がたくさんあります。rpm コマンドや C 言語 API、Python API を使用したりす…

文字列とキャラクタの操作

呼称: 文字列とキャラクタ 目的: 文字列とキャラクタを行ったり来たり 特徴: 知っていると何かの際に便利 用例: 備考: 他にも色々ありそう #!/bin/env python s = "abc" char = ['d', 'e', 'f'] # string -> char print "s2c :", [x for x in s] # char -> s…

最上位の桁を数え上げる

お仕事の息抜きにチャレンジ。やり始めると凝ってきてゴルフは楽しい。 LL Golf Hole 5 にチャレンジ! http://ja.doukaku.org/200/ ちょっと調べた感じでは不評(?)な python の3項演算子を使ってみた。 ゴルフで書くと、さらにもっさり感が漂っている気が…

ClientForm を使用した HTML parsing

呼称 : HTML form の操作 目的 : HTML form への入力や実行を扱う 用例 : tinyurl.com から短縮 URL を取得する 備考 : ClientForm が必要 ちょうど良いお題が LL Golf Hole 1 にありました(^ ^;; http://ja.doukaku.org/192/ #!/bin/env python import re f…

rpm プログラミング with python を読み砕く : 2

引用元ドキュメントから自分勝手に要点のみを抜粋 パッケージファイルを読み込む Python API は、インストールされた RPM パッケージの処理に加えて、RPM パッケージファイルを処理するメソッドを含みます。これらの大半のメソッドはヘッダオブジェクトを要…

標準入力の基本 : 1

呼称: 標準入力の取得 目的: 行単位で標準入力を読み込んでリストへ追加する 特徴: 改行コードの取扱いがポイント 用例: 何かとよく使うでしょ 備考: sys.stdin.readline()[:-1] とスライシングを使うのも有効 #!/bin/env python import sys lines = [] # us…

行の回転

気分転換。 ちょうどローテーションのアルゴリズムを学んだばっかりなのでトライ。rotate linesスペースもカウントされる事に気付いたので(最初から気付けよ(- -#)不要なスペース・インデントはカットしてみた。結構サイズが小さくなった。汎用的なアルゴリ…

珠玉のプログラミングのお題を python で書いてみた : 4

#!/bin/env python """ 2.4 the sort to summarize(P18-21) Problem C anagram : posts stop tops """ # global DIC = ['pans','pots','opt','snap','stop','tops'] def main(): print "Dictionary : ", DIC d = {} for i in DIC: sgrp = sign(i) if d.has_k…

rpm プログラミング with python を読み砕く : 1

引用元ドキュメントから自分勝手に要点のみを抜粋 本章(本連載)の概要 python を使って RPM を使う 必要なモジュールをインストールする RPM データベースを使ってプログラミングする RPM ファイルを使ってプログラミングする プログラムからパッケージをイ…

珠玉のプログラミングのお題を python で書いてみた : 3

#!/bin/env python """ 2.3 the loop/combination of basic procedure(P16-18) Problem B turning over : rotdist=3, "abcdefgh" -> "defghabc" Solution 1 """ # global DATA = ['a','b','c','d','e','f','g','h'] ROTDIST = 3 LENGTH = len(DATA) def main…

平方根を返すコード

先日、コードゴルフ(code golf)の用語と意味を知りました。 id:tokuhirom さんに教えて頂きました。ありがとうございます。屋内でもできる知的ゴルフです。コードゴルフ anarchy golf Code Golf試しに Square root を解いてみました。 import sys,math S=[] …

珠玉のプログラミングのお題を python で書いてみた : 2

#!/bin/env python """ 2.2 the binary search in everywhere(P13-15) Problem A finding the lack of integer """ import random # global ERROR = -1 max_num = 10 element_num = 9 max_digit = 8 def main(): # input data input_data = random.sample(xr…

珠玉のプログラミングのお題を python で書いてみた : 1

#!/bin/env python """ 1.4 The sketch of code(P6-7) That's a sort program using bitmap. """ import random def main(): # input data input_data = random.sample(xrange(0,99), 10) print "input : " + str(input_data) # initialize bitmap = [0 for …

Double Dispatch の実装

要件/目的: Double Dispatch のサンプルプログラムを書いてみる 自己アピール: プログラムのメンテナンス性を高める1つの手法 コメント: こんなんで良いのかな?何となく、ふと思い出したので実際に書いてみました。適当な題材がないかなと探してみたところ…

PyGTK アプリケーションの拡張

Extending our PyGTK Application by Mark Mruss # 本稿は上記リンク元の和訳になります # 本稿はクリエイティブ・コモンズの帰属 - 非営利 - 同一条件許諾 2.5でライセンスされています # 転載ミス、誤訳等については適宜修正します このチュートリアルでは…

Glade3 におけるカスタム PyGTK ウィジット: パート2: カスタムアダプタ

Custom PyGTK Widgets in Glade3: Part 2: Custom widget adaptors by Ali Afshar # 本稿は上記リンク元の和訳になります # 本稿の規約・ライセンス等はオリジナルのそれに従います # 転載ミス、誤訳等については適宜修正します 前回の投稿ではカスタム glad…

Glade3 におけるカスタム PyGTK ウィジット

Custom PyGTK Widgets in Glade3 by Ali Afshar # 本稿は上記リンク元の和訳になります # 本稿の規約・ライセンス等はオリジナルのそれに従います # 転載ミス、誤訳等については適宜修正します gimp のようなマルチウィンドウビューを取り除いて、一般的なア…

which コマンドの実装

2008/04/10 追記: id:michisu:20080410#p1 で書き直してくれました(^ ^;; 2^8 ぐらい、そちらの方がきれいです。 こんな駄コードは見ず、そちらをご覧ください。要件定義/目的: 環境変数 PATH からコマンドの絶対パスを取得する 自己アピール: なし(単なる勉…