2007-01-01から1年間の記事一覧

Python:アルファベットの中から無作為に1文字選ぶ

import string import random print random.choice(string.letters) random.choice(seq)はシーケンスからランダムに一つを選び出す。 string.lettersは[a-zA-Z]の文字が入ったシーケンス。

&& は and, || はor

Pythonで&&はandで、||はorだということを忘れがち。 if(len(sys.argv) == 2 && url.match(sys.argv[1])): target = sys.argv[1] これは文法エラーになる。 if(len(sys.argv) == 2 & url.match(sys.argv[1])): target = sys.argv[1] これは引数を指定せずに…

cygwinでMeCabのPythonバインディングをコンパイルする

形態素解析をやりたいのでMeCabをインストール。 Pythonから呼び出したかったのでバインディングもインストール cygwinにgccをインストール MeCabをインストール MecCabのPythonバインディングをダウンロード setup.pyを変更(後述) python setup.py build …

Webページを取ってきてタグを取り除くPythonスクリプト

タグやURLの正規表現は超適当。 #!/usr/bin/python import sys, os, urllib, gzip, re target = "" tag = re.compile('<[^>]+>') url = re.compile('^http://.+') space = re.compile('(\s+|\r?\n)') if(len(sys.argv) == 2): target = sys.argv[1] html = u…

HTTPクライアント

簡単なHTTPクライアントを書いてみた。 Perlよりも簡単?んなことないか。 #!/usr/bin/python import sys, os, urllib, gzip def httpcat(url, out): remote = urllib.urlopen(url).read() out.write(remote) if(len(sys.argv) == 2): url = sys.argv[1] htt…

Pythonリストの練習

def recursive_reverse(l): if(len(l) == 0): return [] else: return recursive_reverse(l[1:]) + [l[0]] test = ["A", "B", "C", "D"] print "Reset test" printList(test) r = recursive_reverse(test) print "Result of recursive_reverse(l)" printList…

フィボナッチ数列 in Python

Pythonを始めました。 手始めにフィボナッチ数列を書いてみました。 #!/usr/bin/python memo = {} def fib(x): if(not memo.has_key(x)): if(x <= 1): memo[x] = 1 else: memo[x] = fib(x-1) + fib(x-2) return memo[x] fib(999) for i in memo.keys(): prin…