Python
システムの運用監視をしていると1ヶ月の日付ファイルを作成したいケースがあります。例えば、'200905'というフォルダに'20090501.txt'というような日付ファイルを1ヶ月分作成したい場合、効率的にファイルを作成するためにはどういった方法があるのでしょう…
手順 PyGreSQLをインストールします 外部のマシンで稼動しているPostgreSQLにアクセスします →「ImportError: DLL load failed」というエラーが出力された。 →Webで調べるとlibpq.dllにパスが通っている必要があるみたいなのでパスを通す。CSEにlibpq.dllが…
PythonにもC言語のprintf関数のように形式を指定して値の出力をする方法が用意されています。 Pythonでは、「文字列 % 変数」という形式になります。 >>> str = '1234567890' >>> print str 1234567890 >>> print "%s" % str 1234567890また、次のように書式…
よくサーバ上の設定ファイル内にある文字列を別の文字列に置換したいときがあります。 つい先日もデータセンターでサーバ9台に対してPuTTYで繋げてviで編集作業を行ったのですが、let's noteのB5サイズなので画面、キーボードが小さいため大変作業しづらかっ…
エラトステネスのふるいとは、素数を列挙する簡単な方法です。 偶数の素数は2だけなので3以上の奇数だけを調べれば良いですね。flag[i]は2i + 3が素数かどうかを表します。(i = 0,・・・N) N = 8190なら2 × N + 3 = 16383まで調べるので1900番目の素数1638…
以下、SICPからの問題です。 50¢、25¢、10¢、5¢、1¢の硬貨があるとして、1$の両替の場合の数を計算する手続きを再帰手続きで書いてみましょう。余談:25¢はクォーター、10¢はダイム、5¢はニッケル、1¢はペニーという通称があります。50¢はハーフダラー? Pyt…
再帰手続きで有名なハノイの塔をPythonで解いてみました。まずは、ハノイの塔の問題について 3本の棒a、b、cがあります。棒aに、中央に空いたn枚の円盤が大きい順に積まれています。 これを1枚ずつ移動させて棒bに移します。ただし、移動の途中で円盤の大小…
Pythonの多次元リストの作成方法について調べたので、自分用にメモまずは、1次元リストの初期化 >>> map(lambda i:0, range(3)) [0, 0, 0] >>> [0]*3 [0, 0, 0]次に2次元リストの初期化 >>> a = [[0 for i in range(3)] for i in range(3)] >>> a [[0, 0, 0]…
Pythonでパスカルの三角形を書いてみました。 再帰を使うととっても簡潔に書けますね。 def pascal(x, y): if(x == 1 or x == y): return 1 else: return pascal(x - 1, y - 1) + pascal(x, y - 1) def line(n): a = [] for i in range(n): a.append(pascal(…
前回エントリーのコードでforループを使ったところを再帰で書いてみました。 あと、Mathクラスを使わないように変更してみました。import java.io.*;/** * ニュートン法による平方根の計算 * */ public class Newton { private static final double EPS = 1.…
Pythonはインデントを用いたブロック構造を定義しているため、 下記のようなネスト構造の条件分岐を上から順に書くとエラーとなる。 b=0if(b==0): print "b==0" if(len(str(b))==1): print len(str(b))==1 else: print "b!=0" 正しくは、一番上の階層となる…