Python

Windowsで1ヶ月の日付ファイルを作成する

システムの運用監視をしていると1ヶ月の日付ファイルを作成したいケースがあります。例えば、'200905'というフォルダに'20090501.txt'というような日付ファイルを1ヶ月分作成したい場合、効率的にファイルを作成するためにはどういった方法があるのでしょう…

PythonでPostgreSQLにアクセスする

手順 PyGreSQLをインストールします 外部のマシンで稼動しているPostgreSQLにアクセスします →「ImportError: DLL load failed」というエラーが出力された。 →Webで調べるとlibpq.dllにパスが通っている必要があるみたいなのでパスを通す。CSEにlibpq.dllが…

Pythonの文字列フォーマット

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の多次元リストの初期化

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でパスカルの三角形

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の条件分岐

Pythonはインデントを用いたブロック構造を定義しているため、 下記のようなネスト構造の条件分岐を上から順に書くとエラーとなる。 b=0if(b==0): print "b==0" if(len(str(b))==1): print len(str(b))==1 else: print "b!=0" 正しくは、一番上の階層となる…