2007-12-01から1ヶ月間の記事一覧

urllib2モジュール

Getリクエスト >>> import urllib2 >>> r = urllib2.urlopen("http://www.yahoo.co.jp") Postリクエスト >>> import urllib >>> query = {"name":name, "password":password} # 送信するデータ >>> query = urllib.urlencode(query ) # URLエンコード >>> r …

文字列のフォーマット

>>> mail = "hoge@hoge.com" >>> password = "hogehoge" >>> print "mail=%s&password=%s" % (mail, password) mail=hoge@hoge.com&password=hogehoge >>> >>> year = 1989 >>> month = 11 >>> day = 25 >>> print "%d年%d月%d日" % (year, month, day) 1989…

文字列の結合

文字列を結合するには + よりもjoin( )を使った方が速いというので調べてみました。 from timeit import Timer setup = 's = "xxxxxxxxxx"' add_stmt = "s + s + s + s + s" join_stmt = '"".join((s, s, s, s, s))' print Timer(add_stmt, setup).repeat(3,…

コードの実行時間を計測する

コードの実行時間を計測するにはtimeitモジュールを使います。 from timeit import Timer t1 = Timer("for i in range(1000): n += 1", "n = 0") t2 = Timer("for i in xrange(1000): n += 1", "n = 0") print t1.timeit(10000) print t2.timeit(10000) 17.1…

文字列の操作

文字列のメソッドは正規表現を使うより速いので、文字列の操作をする場合は、まず文字列のメソッドでできないかを調べた方がよいです。 文字列の一部を取り出す >>> s = "python" >>> s[2] # 2番目の要素を取り出す 't' >>> s[1:4] # 1番目から3番目までの文…

自動的にエンコード及びデコードを行う

codecsモジュールを使うと、自動的にエンコードやデコードを行ってくれるファイルオブジェクトを得ることができます。 新しく開くファイル import codecs # 自動的にエンコード・デコードを行うファイルオブジェクトを生成 f1 = codecs.open("utf-8.txt", "r…

ファイル操作

ファイルを開く、読み込む、書き込む f1 = f2 = None try: f1 = open("in.txt", "r") # 読み込みモードでファイルを開く f2 = open("out.txt", "w") # 新規書き込みモードでファイルを開く data = f1.read(100) # 100バイト分のデータを読み込む data += f1.…

正規表現 - コンパイル時のフラグ、名前付きのグループ化、文字列の分割・置換

正規表現の振る舞いを変える re.compile( )の第二引数にフラグを指定します。 >>> r1 = re.compile("[a-z]+=\d+", re.I) # 大文字と小文字を区別しない >>> r1.findall("abc=123&DEF=456") ['abc=123', 'DEF=456'] >>> >>> r2 = re.compile("a.+k", re.S) # …

正規表現 - コンパイル、マッチング、マッチした部分の取り出し

正規表現のコンパイル >>> import re >>> r = re.compile("(\w)=(\d)") >>> print r <_sre.SRE_Pattern object at 0x00954EC0> マッチングを行う search( )は文字列の中にマッチする部分があるかを、match( )は文字列の先頭でマッチするかを調べます。 >>> import re >>> r = re.compile("[a-z]+") ></_sre.sre_pattern>…

sort( )について少し詳しく

デフォルトでは、文字列なら文字コード順、数値なら値の小さい順に並び替えます。リストやタプルの場合は、0番目の要素で並び替えを行います。 >>> list = [94, 25, 9, 67] >>> list.sort() >>> list [9, 25, 67, 94] >>> >>> list = ["banana", "grape", "o…

変数名と関数名は同じにしてはいけない

関数はオブジェクトです。変数に代入することも可能です。 >>> range <built-in function range> >>> hoge = range >>> hoge(1, 10) [1, 2, 3, 4, 5, 6, 7, 8, 9] 関数名は関数オブジェクトを参照している変数と考えていいんでしょうか。別の関数を代入することができます。 >>> range</built-in>…

リストとタプルと並び替え

元のリストを並び替える >>> arr = [3, 1, 5, 2, 4] >>> arr.sort() # 昇順に並び替え >>> arr [1, 2, 3, 4, 5] >>> arr = [3, 1, 5, 2, 4] >>> arr.reverse() # 逆順に並び替え >>> arr [4, 2, 5, 1, 3] これらはリストオブジェクトのメソッドなので、タプ…

関数の定義と呼び出し

>>> def sum1(start, end): ... n = 0 ... for i in xrange(start, end+1): n += i ... return n # return文で値を返す ... >>> sum1(1, 10) 55 >>> sum1(start=1, end=10) # "仮引数名=実引数"で引数を渡す(キーワード引数) 55 >>> sum1(end=10, start=1)…

シーケンス型と繰り返し

シーケンス型とは文字列やリストのように順序のある要素の集まりです。組み込み型では他に、Unicode文字列、タプル、xrangeオブジェクトがあります。 要素だけを取り出して繰り返す >>> str = "python" >>> for i in str: ... print i ... p y t h o n イン…

例外処理 その2

try文はelse節を持つことができます。else節はtry節の中で例外が発生しなかった場合に実行されます。 >>> while True: ... try: ... file = open(raw_input("ファイル名: ")) ... except IOError: ... print "ファイルが見つかりません" ... else: ... for i…

例外処理 - 簡略まとめ

try: # 例外が起こりそうな処理を記述 # 例外を発生させる if hoge(): raise ValueError("hoge error") except ValueError: # ValueErrorクラスの例外を補足 # 例外が起こった場合の処理を記述 except IOError, inst # 例外オブジェクトを変数instで受け取る…

例外処理 その1

実行中に発生するエラーは例外と呼ばれます。ほとんどの例外は自動的には処理されず、以下のようなメッセージを表示してプログラムを終了します。 >>> int("hoge") Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: invalid literal fo</module></stdin>…

繰り返し

オブジェクトから要素を一つずつ取り出して繰り返す for文を使います >>> list = ["orange", "apple", "banana"] >>> for i in list: ... print i ... orange apple banana for文に渡すことができるのは、文字列、リスト、タプルや、その他の反復可能オブジ…

辞書オブジェクト

辞書オブジェクトとは、キーを使って複数のオブジェクトをまとめるものです。キーには数値や文字列、タプル(変更不能なリスト)などの変更不能なオブジェクトが使えます。ただし、タプルの要素がリストのような変更可能なオブジェクトの場合はキーに使えま…

条件分岐

Pythonでの条件分岐にはif文を使います。unless文はcase文はありません。 真偽 真 偽でないもの全て 偽 None, False, 0, "", ( ), [ ], { } 論理演算子 not A Aが偽なら真 A and B AとBの両方が真なら真 A or B AとBのどちらかが真なら真 if文 if a > 0 and …

リスト - 作成、取り出し、置換、追加、検索、削除、要素数

作成 >>> list = ["a", "b", "c", "d", "e"] >>> list ['a', 'b', 'c', 'd', 'e'] 取り出し >>> list = ["a", "b", "c", "d", "e"] # n番目の要素を取り出す >>> list[0] 'a' # インデクスが負の数だと後ろから数える >>> list[-1] 'e' # 範囲外のインデクス…

Unicode文字列とバイト文字列の結合

Unicode文字列とバイト文字列を結合する場合、バイト文字列は現在のシステムのデフォルトエンコーディングによってUnicode文字列に変換されます。つまり以下の二つプログラムは同じ結果となります。 # encoding=utf8 str1 = u"おはよう" str2 = "ございます"…