Style chooser: Modern, Modern B&W, Classic, High contrast or Printing

目次

この文書について

バージョン 2.4
新しいバージョンができた際は こちら に掲載されます。
間違いや不明確な点、その他意見がありましたら、ぜひ 連絡 してください。 Richard Gruet (pqr at rgruet.net).
〔翻訳上のご意見は翻訳者までお願いします。〕

Last modified on May 19, 2006
17 Feb 2005,
upgraded by Richard Gruet for Python 2.4
03 Oct 2003,
upgraded by Richard Gruet for Python 2.3
11 May 2003, rev 4
upgraded by Richard Gruet for Python 2.2 (restyled by Andrei)
7 Aug 2001
upgraded by Simon Brunning for Python 2.1
16 May 2001
upgraded by Richard Gruet and Simon Brunning for Python 2.0
18 Jun 2000
upgraded by Richard Gruet for Python 1.5.2
30 Oct 1995
created by Chris Hoffmann for Python 1.3
文字色について:
2.3 から 2.4 にかけて追加された機能
2.2 から 2.3 にかけて追加された機能
2.1 から 2.2 にかけて追加された機能
参考文献:

日本語訳(現在鋭意翻訳中):

$Date: 2006-08-19 00:31:00 +0900 (土, 19 8 2006) $
セトヤマ ハルキ <haruki at planewave dot org>
サイトウ テツヤ <t2psyto at gmail dot com>
リンク:
Tip: Python インタプリタに help, help(object) または help("name") と入力するとヘルプが表示される

起動オプション

python[w] [-dEhimOQStuUvVWxX?] [-c command | scriptFile | - ] [args]
    (pythonw は、ターミナル/コンソールを開かない。 python だと開く)
起動オプション
オプション 効果
-d パーサのデバッグ情報を表示する (PYTHONDEBUG=x と同じ)
-E (PYTHONPATH などの) 環境変数を無視する
-h ヘルプメッセージを表示し終了する (以前の -?)
-i script を実行した後、対話モードに入る (PYTHONINSPECT=x と同じ)。 標準出力がターミナルでなくても強制的にプロンプトを出力する
-m module modulesys.path から探し、スクリプトとして実行する
-O 生成するバイトコードの最適化を行う (PYTHONOPTIMIZE=x と同じ)。Assert を抑制する
-OO -O の最適化に加え、ドキュメンテーション文字列を削除する
-Q arg 除算オプション : -Qold (デフォルト), -Qwarn, -Qwarnall, -Qnew
-S 初期化時に import site を実行しない
-t タブの使用法に矛盾があれば警告する (-tt: エラーとする)
-u 標準出力と標準エラーをバッファ無しのバイナリモードにする (PYTHONUNBUFFERED=x と同じ)
-U 文字リテラルをすべてユニコードリテラルとして解釈する
-v 詳細表示する (import 文をトレースする) 。(PYTHONVERBOSE=x と同じ)
-V バージョン番号を表示し終了する
-W arg 警告の制御 (arg は action:message:category:module:lineno のどれか)
-x ソースの第1行目をスキップする。#!cmd という unix 式でない表記を使用可能とする
-X クラスベースの組み込み例外を無効にする (例外の後方互換性のため)
-c command 与えられたコマンドを実行する (以降のセクションを参照)。 このオプションの後には、別のオプションを記述できない (コマンド自体の引数として扱われる)
scriptFile 実行する Python ファイルの名前。標準入力から読み込まれる
- 標準入力からプログラムを読み込む (ターミナルの場合、デフォルトでは対話モードになる)
args スクリプトやコマンドに渡される引数 (sys.argv[1:] に入る)
  スクリプトやコマンドを指定しないと、Python は対話モードに入る
  • 標準ディストリビューションに含まれる IDE: IDLE (tkinter based, portable), Pythonwin (Windows)。 他のフリーの IDE: IPython (enhanced interactive Python shell), ERIC, SPE, BOA constructor.
  • python の標準的な モジュールヘッダ :
    #!/usr/bin/env python
    # -*- coding: latin1 -*-
    2.3 以降、Python のソースファイルの 文字エンコーディング を はじめの 2 行の内に宣言する必要がある(デフォルトは 7 ビット ASCII) [PEP-0263]。 フォーマットは次のとおり。
    # -*- coding: encoding -*-
    標準エンコーディングここ で定義されており、 ISO-8859-1 (aka latin1), iso-8859-15 (latin9), UTF-8 等がある。 すべてのエンコーディングがサポートされている訳ではない。 たとえば、UTF-16 等は未サポートである。
  • 環境設定: sitecustomize.py ファイルが、パス中 (通常 ${PYTHONHOME}/lib/site-packages/ 中) にあれば、自動的に読み込まれる。
  • Tip: Windows での Python スクリプトの起動
    <pythonHome>\python myScript.py args ...
    <pythonHome> が PATH 環境変数にあれば、myScript.py args ... とできる。
    .py;.pyw;.pyc;.pyoPATHEXT 環境変数に加えてあれば、myScript args ... ともできる。

環境変数

環境変数
変数 効果
PYTHONHOME prefix ディレクトリ (prefix;exec_prefix 等) を置き換える。 デフォルトのモジュール検索パスは、prefix/lib
PYTHONPATH モジュールファイルのデフォルト検索パス。フォーマットは、シェルの $PATH と同じく、 ディレクトリへのパス名を ':' または ';' で区切ったもの (コロン・セミコロンの前後には空白を入れない)。
Windows では、レジストリキー HKEY_LOCAL_MACHINE\Software\Python\PythonCore\x.y\PythonPath (デフォルト値) が、まず検索される。 アプリケーションの名前のキーを生成し、アプリケーションの基底ディレクトリを示すデフォルト文字列を指定できる。

さらに、拡張子が .pth を作成し、各行にパスを記述して、Python の検索パスのどこか (site-packages/ が最良)に置くこともできる。 各アプリケーションごとに .pth ファイルを作成すると、アンインストールも容易になる
PYTHONSTARTUP ファイル名が設定されていて読み込み可能であれば、対話モードの プロンプトを表示する前に、ファイル中の Python コマンドを実行する
PYTHONDEBUG 空でない場合、-d オプションと同じ
PYTHONINSPECT 空でない場合、-i オプションと同じ
PYTHONOPTIMIZE 空でない場合、-i オプションと同じ
PYTHONUNBUFFERED 空でない場合、-i オプションと同じ
PYTHONVERBOSE 空でない場合、-d オプションと同じ
PYTHONCASEOK 空でない場合、(imports 時に) ファイル名・モジュール名の大小文字を無視する

主要な字句エレメント

キーワード

        and       del       for       is        raise
        assert    elif      from      lambda    return
        break     else      global    not       try
        class     except    if        or        while
        continue  exec      import    pass      yield
        def       finally   in        print
  • (キーワードの一覧を得るには標準モジュール keyword を使う)
  • トークンとして使えない文字 (文字列中でのみ使用可): $ ? (2.4 より前では @ も)
  • 文は一行で書く。複数行に分ける時は、C プリプロセッサと同様に、"\" を使う。
    ただし、(), [], {} または3重引用符で括ると、複数行に渡って書ける。
  • セミコロン (";") で区切ると複数の文を一行に書ける。
  • コメントは、"#" で始まり、行の最後まで。

識別子

(letter | "_") (letter | digit | "_")*
  • Python の識別子 (identifier) であるキーワードや属性などは、大小文字が 区別 される。
  • 特殊形式: _ident ('from module import *' によりインポートされない)。 __ident__ (システム定義名)。 __ident (クラスプライベートな名前)。

文字リテラル

str (8 ビット/文字の通常の旧式文字列) と unicode (16 ビット/文字の UCS2 文字列) の 2 つの形式がある。

リテラル
"二重引用符に括られた文字列"
'単引用符に括られた文字列。"を内部で使える'
'''3 つの単引用符で括ると、改行文字や単引用符を内部で使える'''
""" 3 つの二重引用符も同様に使える """
u'unicode 文字列'
U"unicode 文字列の別記法"
r'\ が変換されない生文字列。正規表現や windows のパスを書くときに便利'
R"生文字列の別記法"   -- 生文字列は \ では終えられない
ur'unicode の生文字列'
UR"unicode の生文字列の別記法"
  • 文字列が次の行まで続くときは、\ を行末に使う。
  • 連続する文字列は連結される。例、'Monty ' 'Python''Monty Python' と同じ。
  • u'hello' + ' world'  --> u'hello world'   (unicode に強制変換される)

文字リテラルのエスケープ
エスケープ 意味
\改行 無視 (改行文字をエスケープ)
\\ バックスラッシュ (\)
\e エスケープ文字 (ESC)
\v 垂直タブ (VT)
\' 単引用符 (')
\f 改ページ (FF)
\ooo 8進値 ooo
\" 二重引用符 (")
\n 改行 (LF)
\a ベル文字 (BEL)
\r 復帰 (CR)
\xhh 16進値 hh
\b バックスペース (BS)
\t 水平タブ (TAB)
\uxxxx 16 ビットの16 進値 xxxx の文字 (unicode のみ)
\Uxxxxxxxx 32 ビットの16 進値 xxxxxxxx の文字 (unicode のみ)
\N{name} Unicode データベースに示される文字名称 (unicode のみ)。例、 u'\N{Greek Small Letter Pi}' <=> u'\u03c0'.
(逆は、unicodedata モジュールを使い、 unicodedata.name(u'\u03c0') == 'GREEK SMALL LETTER PI')
\他の文字 バックスラッシュを含めてそのまま。例、str('\z') == '\\z'
  • NUL バイト (\000) は、文字列終端のマーカでは ない。文字列中に NUL を含められる。
  • 文字列 (と タプル) は 変更不能 (immutable) である。

ブール定数 (2.2.1 以降)

  • True
  • False

2.2.1 では、True と False は、それぞれ整数の 1 と 0 である。 2.3 以降は、bool という新しい型である。

数値

  • 10進数: 1234, 1234567890546378940L (or l)
  • 8進数 integer: 0177, 0177777777777777777L (begin with a 0)
  • 16進数 integer: 0xFF, 0XFFFFffffFFFFFFFFFFL (begin with 0x or 0X)
  • 整数 (精度制限なし): 1234567890123456L (L または l で終える) または long(1234)
  • 浮動小数点数 (倍精度): 3.14e-10, .001, 10., 1E3
  • 複素数: 1J, 2+3J, 4+5j (J または j で終える。+ で、(浮動小数点数の) 実部と虚部を区切る)

整数と長整数は、2.2 以降、区別 されない (L 接尾辞は不要)。

シーケンス

  • 文字列 (strunicode 型)。長さが 0, 1, 2 の例、(上記 参照)
      '', '1', "12", 'hello\n'
  • タプル (tuple 型) 。長さが 0, 1, 2 の例、
      () (1,) (1,2) # 長さが 0より大きい時は、カッコはオプション
  • リスト (list 型) 。長さが 0, 1, 2 の例、
      [] [1] [1,2]
  • インデックスは 0 から始まる。負値を指定すると(通常)シーケンスの最後からカウントされる。
  • シーケンスのスライス [開始インデックス : 終了インデックス [ : ステップ]] 。 デフォルトは、開始が 0、終了が len(指定したシーケンス)、ステップは 1
      a = (0,1,2,3,4,5,6,7)
      a[3] == 3
      a[-1] == 7
      a[2:4] == (2, 3)
      a[1:] == (1, 2, 3, 4, 5, 6, 7)
      a[:3] == (0, 1, 2)
      a[:] == (0,1,2,3,4,5,6,7) # シーケンスの コピー を生成する
      a[::2] == (0, 2, 4, 6) # 偶数のみ 
      a[::-1] = (7, 6, 5, 4, 3 , 2, 1, 0) # 逆順
    

辞書 (マップ)

長さが 0, 1, 2 の 辞書 (dict 型) の例、 {} {1 : 'first'} {1 : 'first', 'two': 2, key:value}
キーは、ハッシュ値取得可能 な型でなければならない。値は、どんな型でもよい。

演算子とその優先順位

演算子とその優先順位
演算子 説明
  , [...] {...} `...` タプル、リスト、辞書の生成。文字列変換
s[i] s[i:j] s.attr f(...) インデックス指定、スライス、属性、関数コール
+x, -x, ~x 単項演算
x**y べき乗
x*y x/y x%y 乗算、除算、あまり
x+y x-y 加算、引算
x<<y   x>>y ビットシフト
x&y ビット積
x^y ビット排他的論理和
x|y ビット和
x<y  x<=y  x>y  x>=y  x==y x!=y  x<>y
x is y   x is not y
x in s   x not in s
比較、 
同一性、 
構成要素
not x 否定
x and y 論理積
x or y 論理和
lambda args: expr 無名関数
  • 代替名が operator モジュールに定義されている (例、+ に対し __add__add)
  • ほとんどの演算子は オーバーライド可能

基本的な型とその演算子

比較 (すべての 型に対して)

比較
演算子 意味
< より少ない
(1)
<= より少ないか等しい  
> より多い  
>= より多いか等しい  
== 等しい  
!= or <> 等しくない  
is 同一のオブジェクト
(2)
is not 同一のオブジェクトでない
(2)
  • 比較の動作は、クラスに特殊メソッド __cmp__ を 定義してオーバーライドできる。
  • (1) C 言語と異なり、X < Y < Z < W という書き方ができる。
  • (2) オブジェクトのアイデンティティ (すなわち id(object))を比較する。オブジェクトの値を比べるのではない。

None

  • None は、関数の返り値のデフォルト値である。 組み込みオブジェクト NoneType 型。将来、キーワードとなるかもしれない。
  • None と評価されるような入力は、Python を対話的に動作させている時には表示されない。
  • None は、現在のところ 定数 である。 "None" という名の値を作成しようとすると文法エラーとなる。

ブール型 (bool)

ブール型とその演算子
値とその演算子 結果
組み込みの bool(expr) expr が真ならば True。それ以外は False
True, False を見よ
None, 数値としての 0, 空のシーケンス・マップ False  
他の値 True  
not x xFalse なら True 。さもなくば False  
x or y xFalse なら y。さもなくば x
(1)
x and y xFalse なら x。さもなくば y
(1)
  • ブール演算の動作は、特殊メソッド __nonzero__ を定義してオーバーライドできる。
  • (1) 第 2 引数は、結果を求めるのに必要な時だけ評価される

数値型

浮動小数点数、整数、長整数、10進数

  • 浮動小数点数 (float 型) は C 言語の double として解釈される。
  • 整数 (int 型) は C 言語の long (符号付 32 ビット、 最大値は sys.maxint) として解釈される。
  • 長整数 (long 型) は、サイズ制限はない (ただし、システムリソースには制限される)。
  • 2.2 より、整数と長整数とは 区別されない (L 接尾辞は不要)。 int() は、 long 整数を返す。 OverflowError を送出することはない。. オーバーフローしそうな演算、たとえば 2<<32 などでも、 FutureWarning は送出されず、長整数が返される。
  • 2.4以降、 Decimal という新しい型が導入され (モジュール decimal 参照)、 分数計算などで起きる浮動小数点演算上の制限を回避できる。 浮動小数点数と異なり、10 進数は正確な表現ができ、計算時の正確性が保たれる。 精度は、Context 型を使ってユーザ設定できる [PEP 327]。

数値型に対する演算子

数値型に対する演算子
演算子 結果
abs(x) x の絶対値
int(x) x を整数に変換
long(x) x を長整数に変換
float(x) x を浮動小数点数に変換
-x x の符号を反転
+x x に変化なし
x + y xy との和
x - y xy との差
x * y xy との積
x / y x 割る y の正確な除算。 1/2 -> 0.5 (1)
x // y 切り捨て除算。 1//2 -> 0 (1)
x % y x / y の剰余
divmod(x, y) (x/y, x%y) というタプル
x ** y xy 乗 (pow(x,y) と同じ)
  • (1) ただし、from __future__ import division として有効化しないと、/ も切り捨て除算を行う。
  • これらの演算子を再定義するには、クラスの __truediv____floordiv__ メソッドをオーバーライドする。

整数・長整数に対するビット演算子

ビット演算子
演算子 結果
~x x の各ビットを反転
x ^ y xy とのビットごとの排他的論理和
x & y xy とのビット積 (ビットごとの and)
x | y xy とのビット和 (ビットごとの or)
x << n xn ビット左シフト
x >> n xn ビット右シフト

複素数

  • complex 型により、マシンレベルの倍精度浮動小数点数の組として表現される。
  • 複素数 z の実部と虚部はそれぞれ z.real , z.imag で得られる。

数値に関する例外

TypeError
非数値に対して数値演算を行った
OverflowError
数値の限界を超えた
ZeroDivisionError
割算・剰余演算で 0 で割った

シーケンス (リスト・タプル・文字列) の演算

シーケンス型の演算
演算子 結果
x in s sx と等しい要素があるとき True。それ以外で False
(3)
x not in s sx と等しい要素があるとき False。それ以外で True
(3)
s1 + s2 s1s2 を連結する  
s * n, n*s sn 個連結する
 
s[i] si 番目の要素。基点は 0
(1)
s[i: j]
s[i: j:step]
si 番目の要素から to j 番目の1つ手前の要素までをスライスする。 step 値はオプションで、負の値にもできる (デフォルトは 1)
(1), (2)
len(s) s の長さ  
min(s) s の最小の要素
 
max(s) s の最大の要素
 
reversed(s) [2.4] s についての イテレータ で、順序を逆としたものを返す。 ここで s はシーケンス。イテレータではない (reversed(list(s)) とする)。 [PEP 322]
 
sorted(iterable [, cmp]
  [, cmp=cmpFct]
  [, key=keyGetter]
  [, reverse=bool])
[2.4] インプレースで動作する list.sort() と同様だが、 iterable 引数から 新しく 生成したリストをソートする
 
注 :
  • (1) ij が負のとき、インデックスは文字列の最後から勘定される。 つまり len(s)+i や len(s)+j の値が使われる。ただし、-0 は 0 のまま。
  • (2) si から j までのスライスとは、インデックス ki<= k < j である要素のシーケンスと定義される。
    ij が len(s) より大きいときは、len(s) が使われる。 j を省略すると len(s) が使われる。ij 以上だと、スライスの結果は空となる。
  • (3) 2.3 以前では、文字列に対しては、x が 1 つの文字でなければならない。 2.3 以降は、x in s は、x が s の 部分文字列 であるとき真になる。

変更可能なシーケンス (list 型) の演算

変更可能なシーケンスの演算
演算子 結果
s[i] =x s の第 i 要素を x に置換する  
s[i:j [:step]] = t si から j までのスライスを t に置換する  
del s[i:j[:step]] s[i:j] = [] と同じ  
s.append(x) s[len(s) : len(s)] = [x] と同じ  
s.extend(x) s[len(s) : len(s)] = x と同じ
(5)
s.count(x) s の要素で x と等しいものの個数を返す  
s.index(x[, start[, stop]]) s[i]==x となる 最小の i を返す。 startstop を指定すると検索範囲をリストの一部に制限できる。
(1)
s.insert(i, x) i>= 0 なら、s[i:i] = [x] と同じ i == -1 とすると最後の要素の 手前に 挿入される。  
s.remove(x) del s[s.index(x)] と同じ
(1)
s.pop([i]) x = s[i]; del s[i]; return x と同じ
(4)
s.reverse() s の要素をインプレイスで反転する
(3)
s.sort([cmp ])
s.sort([cmp=cmpFct]
  [, key=keyGetter]
  [, reverse=bool])
s の要素をインプレイスでソートする
(2), (3)
  • (1) xs 中に見つからなければ、ValueError 例外が送出される。
  • (2) sort() メソッドは、オプションの引数 cmp に比較関数を指定できる。この関数は 引数を 2 つ取り、 第 1 引数が第 2 引数に比べ、小さいとき -1、等しいとき 0、大きいとき 1 を返す。 比較関数を指定すると、ソートがとても遅くなるので注意すること。 2.4 以降、cmp はキーワード引数として指定できる。 さらに、2 つのキーワードが追加された。 key は、リストの要素を受けて、比較に使うキーを返す関数である (cmp より 速い )。 reverse は、True を指定すると比較の意味を逆転させる。
    Python 2.3 (?) 以降、 ソートの 「安定」 が保障されている。つまり、2 つの要素の比較キーが同じならば、 入力時と同じ順で返される。たとえば、まず人のリストを名前でソートしてから年齢でソートしたとする。 その結果は、同じ年齢の人については名前でソートされた状態となる。
  • (3) sort()reverse() メソッドは、リストを インプレース変更 し、 ソートされたリストは返されない。大きなリストを扱うときのリソース節約のためである。この副作用に注意すること。
  • (4) pop() メソッドは、リスト以外の変更可能なシーケンスには適用できない。 i 引数のデフォルト値は -1で、最後の要素が削除され、返される。
  • (5) x がリストオブジェクトでなければ TypeError が送出される。

辞書/マップ (dict 型) の演算

マップの演算
演算子 結果
len(d) d の要素数を返す  
dict()
dict(**kwargs)
dict(iterable)
dict(d)
空の辞書を作成する。
キーワード引数 kwargs で初期化した辞書を作成する。
iterable から得られる (キー, 値) の組で初期化した辞書を作成する。
辞書 d のコピーを作成する
 
d.fromkeys(iterable, value=None) iterator から得られるキーを元に辞書を作成し、値を value に設定する  
d[k] d の要素で、キーが k のもの
(1)
d[k] = x d[k] を x にする  
del d[k] d[k] を d から削除する
(1)
d.clear() 全要素を d から削除する  
d.copy() d の(浅い)コピーを返す  
d.has_key(k)
k in d
d にキー k があれば True、さもなくば False  
d.items() d の (キー, 値) というペアを要素とするリストを返す
(2)
d.keys() d のキーのリストを返す
(2)
d1.update(d2) for k, v in d2.items(): d1[k] = v
2.4 以降、 キーワード引数 update(**kwargs) と イテレータ update(iterable) も使える
d.values() d の値のリストを返す
(2)
d.get(k, defaultval) d から、キー k の値を返す
(3)
d.setdefault(k[,defaultval]) キー kd にあれば d[k] を返す。さもなくば、 defaultvalを (値に設定した上で) 返す
(4)
d.iteritems() (キー, 値)ペアに対する イテレータ を返す  
d.iterkeys() キー列に対する イテレータ を返す  
d.itervalues() 値列に対する イテレータ を返す  
d.pop(k[, default]) キー k を削除した上で、その値を返す。 そのキーが無ければ、 指定されていれば default を返し、さもなくば KeyError を送出する  
d.popitem() d の (key, value) ペアのどれかを、削除した上で返す
 
  • キーにアクセス不能のときは TypeError が送出される。
  • (1) キー k がマップに無い場合は KeyError が送出される。
  • (2) キーと値は、ランダムな順で並ぶ。
  • (3) キー k がマップに無くとも例外は送出されず、defaultval が返される。 defaultval はオプションで、これが指定されずかつ k がマップに無いときは None が返される。
  • (4) キー k がマップに無くとも例外は送出されず、defaultval が返され、 キー k が値を defaultVal として追加される。defaultval はオプションで、 これが指定されずかつ k がマップに無いときは None が返され、マップに追加される。

文字列 (str 型・unicode 型) の演算

次の文字列メソッドは、string モジュールの関数を(ほぼすべて) 置き換えたものである。
str 型と unicode 型の基底クラスはいずれも basestring 型。
文字列演算
演算子 結果
s.capitalize() s の最初の文字を大文字にした文字列を返す  
s.center(width) width の長さに対し、s を中央寄せした文字列を返す
(1)
s.count(sub[ ,start[,end]]) s 中に部分文字列 sub が出現する回数を返す
(2)
s.decode([ encoding[,errors]]) 指定されたコーデック(文字エンコード)でデコードされたユニコード文字列を返す。 ファイルや、str 型の文字列だけを処理するような入出力関数を使ったの読み込みに有用である。 encode の逆動作である
(3)
s.encode([ encoding[,errors]]) s をエンコードした str 型の文字列を返す。 (入出力関数が str 型しか処理できないので)出力やファイルへの書き込みを行う際に、 ユニコード文字列を str 型へエンコードするのに良く使われる。 例、 u'légère'.encode('utf8')。 zip (codec 'zip') や uuencode (codec 'uu') など str 型を str 型にエンコードする のにも使われる。decode の逆動作である
(3)
s.endswith(suffix [,start[,end]]) ssuffix で終わっていれば True を返す。さもなくば、False を返す
(2)
s.expandtabs([ tabsize]) s 中のタブをスペースに変換した文字列を返す
(4)
s.find(sub[ ,start[,end]]) s 中で部分文字列 sub が見つかった最小のインデックス値を返す。 見つからなければ -1 を返す
(2)
s.index(sub[ ,start[,end]]) find() と同様だが、見つからなければ ValueError を送出する
(2)
s.isalnum() s の文字がすべて英数字であれば True を返す。さもなくば False を返す
(5)
s.isalpha() s の文字がすべて英字であれば True を返す。さもなくば False を返す
(5)
s.isdigit() s の文字がすべて数字であれば True を返す。さもなくば False を返す
(5)
s.islower() s の文字がすべて小文字であれば True を返す。さもなくば False を返す
(6)
s.isspace() s の文字がすべて空白文字であれば True を返す。さもなくば False を返す
(5)
s.istitle() s の文字がすべてタイトルケース(各単語の始めが大文字)であれば True を返す。 さもなくば False を返す
(7)
s.isupper() s の文字がすべて大文字であれば True を返す。さもなくば False を返す
(6)
separator.join(seq) シーケンス seq の文字列を、文字列 separator で区切った形式で連結した文字列を返す。 例、 ",".join(['A', 'B', 'C']) -> "A,B,C"
 
s.ljust/rjust/center(width[, fillChar=' ']) s を左寄せ/右寄せ/中央寄せした、長さが width の文字列を返す
(1), (8)
s.lower() s を小文字に変換した文字列を返す
 
s.lstrip([chars] ) s の先頭にある chars (デフォルトは空白文字) を削除する
 
s.replace(old, new[, maxCount =-1]) s 中の部分文字列 old の先頭 maxCount 個 (-1のとき制限なし)を new に変換した文字列を返す
(9)
s.rfind(sub[ , start[, end]]) s 中で部分文字列 sub が見つかった最大のインデックス値を返す。 見つからなければ -1 を返す
(2)
s.rindex(sub[ , start[, end]]) rfind() と同様だが、見つからなければ ValueError を送出する
(2)
s.rstrip([chars]) s の最後にある chars (デフォルトは空白文字) を削除する。e.g. aPath.rstrip('/') will remove the trailing '/'from aPath if it exists
 
s.split([ separator[, maxsplit]]) sseparator を区切り文字として分解した文字列のリストを返す
(10)
s.rsplit([ separator[, maxsplit]]) splitと同様だが、文字列の最後から分解する
(10)
s.splitlines([ keepends]) s を改行で分解し、各行からなるリストを返す
(11)
s.startswith(prefix [, start[, end]]) sprefix で始まっていれば True を返す。さもなくば False を返す。 負値も startend に使える
(2)
s.strip([chars]) s の先頭と最後にある chars (デフォルトは空白文字) を削除する
 
s.swapcase() s の大文字と小文字を入れ替えた文字列を返す
 
s.title() s をタイトルケース化した、つまり各単語の始めを大文字とし残りを小文字とした、文字列を返す。
 
s.translate(table [, deletechars]) s をテーブル table を使って置換した文字列を返す
(12)
s.upper() s を大文字に変換した文字列を返す
 
s.zfill(width) 長さ width の、先頭を 0 詰めした文字列を返す  
  • (1) パディングは、スペースまたは指定した文字を使って行われる。
  • (2) オプション引数 start を指定すると、s[start:] が処理される。オプション引数 startend の双方を指定すると、 s[start:end] が処理される。
  • (3) デフォルトのエンコーディングは、 sys.getdefaultencoding()で、 sys.setdefaultencoding() により変更できる。オプション引数 errors を指定して、 別のエラー処理スキームを設定できる。errors 引数のデフォルトは 'strict'で、 エンコーディング関連エラーはにより ValueError が送出される。他に、'ignore' または 'replace' を指定できる。モジュール codecs を見よ。
  • (4) オプション引数 tabsize を指定しないと、タブ幅は 8 文字が設定される。
  • (5) s が文字を1つ以上含んでいないと、False が返される。
  • (6) s が対象とする文字を1つ以上含んでいないと、False が返される。
  • (7) タイトルケースな文字列とは、大文字は非英字の後だけにあり、小文字は英字の後だけにあるという文字列のこと。
  • (8) widthlen(s) より小さいと s が返される。
  • (9) オプション引数 maxCount を指定すると、先頭から maxCount 個だけが置換される。
  • (10) separator を指定しない None を指定すると、すべての空白文字がセパレータとなる。 maxsplit を指定すると、分解が最大 maxsplit 回まで行われる。
  • (11) keepends に真と評価されうる値を指定しない限り、返される結果には改行文字は含まれない。
  • (12) table は、長さ 256 の文字列とする。オプション引数 deletechars に指定した文字は、変換に先立って削除される。

% 演算子による文字列のフォーマット

formatString % args --> 文字列を返す
  • formatString〔フォーマット文字列〕は、通常のテキストに C 言語の printf の 型指定子 を埋め込んだもの。
    %[flag][width][.precision] formatCode
    ここで formatCode は c, s, i, d, u, o, x, X, e, E, f, g, G, r, % のどれか (下記参照)。
  • flag 文字は -, +, blank, # と 0 (下記参照
  • widthprecision* とすると、幅値や精度値は args から 設定される。例を示す。
    フォーマット文字列 結果
    '%3d' % 2 ' 2'
    '%*d' % (3, 2) ' 2'
    '%-3d' % 2 '2 '
    '%03d' % 2 '002'
    '% d' % 2 ' 2'
    '%+d' % 2 '+2'
    '%+3d' % -2 ' -2'
    '%- 5d' % 2 ' 2 '
    '%.4f' % 2 '2.0000'
    '%.*f' % (4, 2) '2.0000'
    '%0*.*f' % (10, 4, 2) '00002.0000'
    '%10.4f' % 2 ' 2.0000'
    '%010.4f' % 2 '00002.0000'
  • %s は、すべての型の引数を文字列に変換する (str() 関数が使われる) 。
  • args には、タプルも指定できる。
    '%s has %03d quote types.' % ('Python', 2)  == 'Python has 002 quote types.'
  • % の右側には マップ を指定できる。
    a = '%(lang)s has %(c)03d quote types.' % {'c':2, 'lang':'Python'}
    (右側に vars() 関数を使うのも便利である)

型指定子
formatCode 意味
d 符号付き10進整数
i 符号付き10進整数
o 符号なし8進数
u 符号なし10進数
x 符号なし16進数 (小文字)
X 符号なし16進数 (大文字)
e 浮動小数点数の指数表示 (小文字)
E 浮動小数点数の指数表示 (大文字)
f 浮動小数点数の10進表示
F 浮動小数点数の10進表示
g 指数が -4 未満か precision 以上のとき "e"、さもなくば "f" と同じ
G 指数が -4 未満か precision 以上のとき "E"、さもなくば "F" と同じ
c 単一文字 (整数値または単一文字の文字列をとる)
r 文字列 (オブジェクトを repr() を使って変換したもの)
s 文字列 (オブジェクトを str() を使って変換したもの)
% 引数の変換はせず、"%" 文字自体が結果に返る (完全な表記は %%)
文字変換フラグ
flag 意味
# 「別形式」を使って値変換する
0 0 埋めする
- 左寄せする
  (空白文字) 。正の値(または空白文字)の前に空白文字を置く
+ 正負記号 ("+" または "-") を前に付ける(空白文字フラグより優先される)

テンプレート文字列

2.4 以降 [PEP 292]string モジュールに、変数を テンプレート 文字列中の変数を置換する新たな機能が追加された。
置換対象となる変数は $ で始める。実際の値は、substitute または safe_substitute メソッドに辞書で指定する(〔テンプレート中に記述した〕キーが〔指定した辞書に〕ない場合、 substituteKeyError 例外を送出する。 safe_substitute は、〔キーが無いことを〕無視する)。

  t = string.Template('Hello $name, you won $$$amount') # (note $$ to literalize $)
  t.substitute({'name': 'Eric', 'amount': 100000}) # -> u'Hello Eric, you won $100000'

ファイルオブジェクト

(file 型)。 組み込み関数 open() [推奨] やそのエイリアス file() から生成される。 他のモジュールの関数からも生成される。
ファイル名を引数に取る/返す関数 (open, os.listdir, など...) はすべて Unicode ファイル名をサポートする。

ファイルオブジェクトの演算

ファイルの操作
演算 結果
f.close() ファイル f をクローズする
f.fileno() ファイル f のファイル記述子 (fd) を取得する
f.flush() ファイルの f の内部バッファをフラッシュする
f.isatty() ファイル f が tty (または類似の) デバイスに接続されていれば 1 を、さもなくば 0 を返す
f.next() Returns the next input line of file f, or raises StopIteration when EOF is hit. Files are their own iterators. next is implicitely called by constructs like for line in f: print line.
f.read([size]) ファイル f から最大 size バイトを読み込み、文字列オブジェクトを返す。 size を指定しないと、EOF まで読む
f.readline() ファイル f から 1 行読み込む。行の末尾の改行文字は残す。ただし、EOF は残さない。Return '' on EOF.
f.readlines() readline() で EOF まで読み、行のリストを返す
f.xreadlines() ファイル全体をメモリに読み込まないでファイルの各行を読み込むような シーケンス類似のオブジェクトを返す。 2.2 以降では、 for line in f を使う (下記参照)
for line in f: do something... (readline を使って) ファイルの各行をイテレートする
f.seek(offset[, whence=0]) ファイル f の位置を設定する。stdio の fseek() と同じ。
whence == 0 のとき絶対位置指定。
whence == 1 のとき現在位置からの相対指定。
whence == 2 のときファイルの末尾からの指定
f.tell() ファイル f の現在位置を返す (バイトオフセット)
f.truncate([size]) Truncate f's size. If size is present, f is truncated to (at most) that size, otherwise f is truncated at current position (which remains unchanged).
f.write(str) 文字列をファイル f に書き込む
f.writelines(list) 文字列のリストをファイル f に書き込む。EOL は追加しない

ファイル関連の例外

EOFError
読み込み中に End-of-file にヒットした (多数回送出されうる。たとえば f が tty のとき)
IOError
他の I/O 操作に失敗した

set(集合)型

2.4 で、C で実装された新たな 2 つの 組み込み型 setfrozenset (変更不能な set) が追加された [PEP 218]。 これら set 型は、順番の無いユニークな要素の集合である。要素はハッシュ可能でなければならない。 frozensets 型はハッシュ可能である(つまり、他の set の要素となれる)。 一方、set 型はそうではない。いずれも、イテレート可能 である。

2.3 では、sets モジュールにおいて、 Set クラスと ImmutableSet クラスが使用できる。 このモジュールは、2.4 の標準ライブラリに残されており、 組み込み型とあわせ使用できる。
主な Set 型の演算子
演算子 結果
set/frozenset([iterable=None]) [using built-in types] Builds a set or frozenset from the given iterable (default: empty), e.g. set([1,2,3]), set("hello").
Set/ImmutableSet([iterable=None]) [using the sets module] Builds a Set or ImmutableSet from the given iterable (default: empty), e.g. Set([1,2,3]).
len(s) Cardinality of set s.
elt in s / not in s True if element elt belongs / does not belong to set s.
for elt in s: process elt... Iterates on elements of set s.
s1.issubset(s2) True if every element in s1 is in s2.
s1.issuperset(s2) True if every element in s2 is in s1.
s.add(elt) Adds element elt to set s (if it doesn't already exist).
s.remove(elt) Removes element elt from set s. KeyError if element not found.
s.clear() Removes all elements from this set (not on immutable sets!).
s1.intersection(s2) or s1&s2 Returns a new Set with elements common to s1 and s2.
s1.union(s2) or s1|s2 Returns a new Set with elements from both s1 and s2.
s1.difference(s2) or s1-s2 Returns a new Set with elements in s1 but not in s2.
s1.symmetric_difference(s2) or s1^s2 Returns a new Set with elements in either s1 or s2 but not both.
s.copy() Returns a shallow copy of set s.
s.update(iterable) Adds all values from iterable to set s.

日付と時刻

Python には、固有の日付型や時刻型は ない が、〔日付と時刻に関する〕組み込みモジュールが 2 つある。
  • time: 時刻の取得と変換
  • datetime: date, time, datetime, timedelta および tzinfo クラス

サードパーティのモジュール mxDateTime も見よ。

その他の型

- 詳細はマニュアルを見よ -
  • Module オブジェクト
  • Class オブジェクト
  • Class instance オブジェクト
  • Type オブジェクト (see module: types)
  • File オブジェクト (上記参照)
  • Slice オブジェクト
  • Ellipsis オブジェクト, used by extended slice notation (unique, named Ellipsis)
  • Null オブジェクト (unique, named None)
  • XRange オブジェクト
  • コール可能な
    • ユーザ定義 (Python で記述)
      • User-defined Function オブジェクト
      • User-defined Method オブジェクト
    • 組み込み (C で記述)
      • 組み込み Function オブジェクト
      • 組み込み Method オブジェクト
  • 内部
    • Code オブジェクト (byte-compile executable Python code: bytecode)
    • Frame オブジェクト (execution frames)
    • Traceback オブジェクト (stack trace of an exception)


結果
pass 何もしない
del name[, name]* name とオブジェクトの結びつけを解除する。オブジェクトは、他から参照されていないなら、 派生的に (また自動的に) 削除されることとなる
print[>> fileobject,] [s1 [, s2 ]* [,] 指定されていれば fileobjectに、さもなくば sys.stdout に出力する。 文が カンマ で終わっていないときは、改行文字が付けられる。Python が対話モードの際は、 print 文は不要で、表現が何か入力されるとその値を、None で無い限り、出力する。
exec x [in globals [, locals]] 指定した名前空間中の x を実行する。デフォルトは現在の名前空間。 x は、文字列・ファイルオブジェクト・ 関数オブジェクトのどれか。locals には、通常の Python の辞書型以外のマップ型も使える。
callable(value,... [id=value] , [*args], [**kw]) 関数 callable を引数を与えてコールする。引数は、名前指定で渡せる。また、デフォルト値が設定されていれば、省略できる。 たとえば callable の定義が "def callable(p1=1, p2=2)" のとき、次のようになる。
"callable()" <=> "callable(1, 2)"
"callable(10)" <=> "callable(10, 2)"
"callable(p2=99)" <=> "callable(1, 99)"
*args は、引数と 位置 でもって対応したタプル。
**kw は、引数と キーワード でもって対応したタプル。

代入演算

代入演算
演算子 結果
Notes
a = b 基本的な代入 - オブジェクト b をラベル a へ代入するS
(1)(2)
a += b a = a + b とほぼ同じ
(3)
a -= b a = a - b とほぼ同じ
(3)
a *= b a = a * b とほぼ同じ
(3)
a /= b a = a / b とほぼ同じ
(3)
a //= b a = a // b とほぼ同じ
(3)
a %= b a = a % b とほぼ同じ
(3)
a **= b a = a ** b とほぼ同じ
(3)
a &= b a = a & b とほぼ同じ
(3)
a |= b a = a | b とほぼ同じ
(3)
a ^= b a = a ^ b とほぼ同じ
(3)
a >>= b a = a >> b とほぼ同じ
(3)
a <<= b a = a << b とほぼ同じ
(3)
  • (1) タプルやリスト・文字列を分解できる。
    first, second = l[0:2]    # first=l[0]; second=l[1] と同じ
    [f, s] = range(2)    # f=0; s=1 と同じ
    c1,c2,c3 = 'abc'    # c1='a'; c2='b'; c3='c' と同じ
    (a, b), c, (d, e, f) = ['ab', 'c', 'def']    # a='a'; b='b'; c='c'; d='d'; e='e'; f='f' と同じ
    Tip: x,y = y,x は、 xy を入れ替える
  • (2) 複数の代入ができる。
    a = b = c = 0
    list1 = list2 = [1, 2, 3]    # list1 と list2 は 同じ リストになる
  • (3) 完全に同じではない。 a は一度だけ評価される。また、可能であれば、 演算はインプレイスで行われる。つまり a は、置き換えられるのではなく、自ら変更することになる。

制御文

制御文
結果
if condition:
  suite
[elif condition:   suite]*
[else:
  suite]
一般的な if/else 文
while condition:
  suite
[else:
  suite]
一般的な while 文。ループから break で抜けたとき以外は、 else suite を実行する
for element in sequence:
  suite
[else:
  suite]
sequence に対して、その各要素を element に代入して、繰り返しを行う。 繰り返しを単に何回か行いたいときは、組み込みの range 関数を使う。 ループから break で抜けたとき以外は、 else suite を実行する
break 即座に for または while ループから抜ける
continue 即座に for または while のループの次の繰り返しを行う
return [result] 関数(またはメソッド)から抜け、result を返す (複数の値を返すときは、 tuple を使う)。 result を指定しなければ、None が返る
yield expression (generator 関数の内部で、 try..finally の外でだけ使う)。 expression を評価した結果を返す

例外文

例外文
結果
assert expr[, message] expr を評価し、偽なら AssertionError をメッセージと共に送出する。 2.3 以前では、__debug__ が 0 のとき使えない
try:
  suite1
[except [exception [, value]:
  suite2]+
[else:
  suite3]
suite1 の文を実行し、例外が送出されたら、except 節で例外マッチングを行う。 exception とマッチするか、exception を指定していないとき、 その節の suite2 を実行する。例外が送出されなければ、 suite1 に続いて else 節の suite3 を実行する。exception の値は、 変数 value に代入される。exception は例外の タプル でもよい。例、 except(KeyError, NameError), e: print e
try:
  suite1
finally:
  suite2
suite1 の文を実行し、例外が送出されなければ、suite2 を実行する (たとえ suite1 から returnbreak , continue で 抜けた場合も)。例外が送出されたら、suite2 を実行し、例外を再送出する
raise exceptionInstance Exception を継承したエラークラスのインスタンスを送出する。(望ましい 例外送出方法)
raise exceptionClass [, value [, traceback]] 指定した例外クラス exceptionClass を、オプション値 value を設定し、送出する。 traceback 引数には、例外のバックトレースを出力するトレースバックオブジェクトを指定する
raise 引数なしの raise 文は、現在の関数内の直近の例外を再送出する
  • 例外は 例外クラスインスタンス である (2.0 以前では通常の 文字列 とできる)
  • 例外は、定義済みのクラス Exception を継承しなければならない。例、
    class TextException(Exception): pass
    try:
    if bad:
    raise TextException()
    except Exception:
    print 'Oops' # This will be printed because TextException is a subclass of Exception
  • 処理がなされない例外についてはエラーメッセージが出力される。まず、クラス名が出力され、 コロン・スペースと続き、組み込み関数 str() で例外のインスタンスを文字列に変換したものが出力される
  • すべての組み込み例外は(Exception を継承した)StandardError を継承している。

名前空間文

インポートするモジュールファイルは、Python パス (sys.path) に設定されたディレクトリに置かなければならない。 2.3 以降、zip ファイルにまとめることも可能 [例、 sys.path.insert(0, "aZipFile.zip")]。

パッケージ (>1.5): パッケージ は、名前空間の1種で、モジュール本体と初期化モジュール __init__.py を含むディレクトリ(空も可)に結びつけるもの。
パッケージのディレクトリはネストできる。モジュール表記は次の様になる。 [package.[package...].module.symbol
[1.51: On Mac & Windows, the case of module file names must now match the case as used in the import statement]

名前空間文
結果
import module1 [as name1] [, module2]* モジュールをインポートする。モジュールの内容は、 [パッケージ.]モジュール名 を前に付けて参照する。例、
import sys; print sys.argv
import package1.subpackage.module
package1.subpackage.module.foo()
name1 を指定すると、その名前で module1 を呼べる。
from module import name1 [as othername1][, name2]* モジュール module から現在の名前空間に指定した名前をインポートする。
from sys import argv; print argv
from package1 import module; module.foo()
from package1.module import foo; foo()
othername1 を指定すると、その名前で name1 を呼べる。
[2.4] from module import names 文で名前のリストをカッコで括れる (PEP 328).
from module import * moduleすべての 名前をインポートする。ただし、"_" で始まるものは除く。 常用しないこと。名前の衝突に注意。
from sys import *; print argv
from package.module import *; print x
モジュールのトップレベルでのみ使用可能。
module__all__ 属性を定義しているなら、__all__ にリストされている 名前だけをインポートする。

注、 "from package import *" は、パッケージに含まれるモジュールではなく、 そのパッケージの __init__.py ファイルに定義されているシンボルだけをインポートする
global name1 [, name2] 指定した名前を、ローカル (通常は関数) なものでなく、グローバルスコープ (通常はモジュール) のものとする。
たとえば、関数中で global 文がなく、"x" はその関数中で使われていないとする。
- "x" を読み込もうとすると、 NameError
- "x" に書き込もうとすると、 関数ローカルの "x" を生成
"x" は関数中で定義されていないが、モジュールで定義されている。
- "x" を読み込もうとすると、モジュールから値を取得する
- "x" に書き込もうとすると、 関数ローカルの "x" を生成
ただし "x[0]=3" は "x" の検索を行い、ローカルでなくグローバルの "x" を使う

関数定義

def funcName ([paramList]):
suite
関数オブジェクトを生成し、名前 funcName に代入する。
paramList ::= [param [, param]*]
param ::= value | id=value | *id | **id
  • 値が 〔仮〕引数に渡される。よって、変更可能な オブジェクトについてのみ、 〔実〕引数の値を〔関数内から〕変更できる(つまり、入出力変数(inout parameters)とできる)。
  • return を使うと、関数から戻れる(この場合、None を返す)。 return value とすると value を返して戻る。 複数の値を返すには、return 1,2,3 のように タプル を使う。
  • キーワード 引数 arg=value を使って デフォルト値 を定義できる(デフォルト値は、関数定義時に評価される) 。foo(x, y=1, s='') のように 変数リストの後ろに記述する。
  • 任意引数 *args は、記述位置以降の非キーワード引数のタプルをとる。 例、def foo(x, *args): ...foo(1, 2, 3) とコールすると args(2,3) となる。
  • 任意引数 **kwargs は、余分なキーワード引数と対応する辞書をとる。 例、def foo(x, **kwargs): ...foo(1, y=2, z=3) とコールすると、 kwargs{'y':2, 'z':3} となる。def foo(x, *args, **kwargs): ...foo(1, 2, 3, y=4, z=5) をコールすると、args(2, 3) となり kwargs{'y':4, 'z':5} となる。
  • argskwargs は、この名前とすることが慣習であるが、他の名前とすることもできる。
  • *args**kwargs を(個別に、または同時に)「転送する」こともできる。
    def f1(x, *args, **kwargs):
      f2(*args, **kwargs)
  • 無名関数 (lambdas) も見よ。

クラス定義

class className [(super_class1[, super_class2]*)]:
  suite

関数オブジェクトを生成し className という名前に代入する。
suite には、ローカルのクラスメソッドの定義と、クラス属性への代入を記述できる。

class MyClass (class1, class2): ...
class1 と class2 とを継承したクラスオブジェクトを生成する。 その新しいクラスオブジェクトを名前 MyClass に代入する。

class MyClass: ...
基底 クラスオブジェクト (何も継承しないクラス) を生成する。 その新しいクラスオブジェクトを名前 MyClass に代入する。

class MyClass (object): ...
新形式 クラスobject を継承するクラスは 新形式 クラスとなる。2.2 以降で利用できる) を生成する。その新しいクラスオブジェクトを名前 MyClass に代入する。

  • クラス インスタンス メソッドの第 1 引数は、そのメソッドでの操作対象となるインスタンスオブジェクトとする。 'self' とするのが慣習である。
  • インスタンスの生成時に、特殊静的メソッド __new__(cls[,...]) がコールされる。 第 1 引数はクラスで、他の引数は __init__() と同じである。詳細は こちら
  • 特殊メソッド __init__() が、インスタンスの生成時にコールされる。
  • 特殊メソッド __del__() が、オブジェクトへの参照がなくなったときにコールされる。
  • インスタンスの生成は、クラスオブジェクトを 「コールする」ことで行う。引数指定もできる (つまり instance=apply(aClassObject, args...) とするとインスタンスが生成される) 。
  • 2.2 以前では、リストや辞書などの組み込みのクラスのサブクラスを直接作ることはできない (UserDict や UserList モジュールを使って「ラップする」ことが必要)。2.2 以降は 直接サブクラスを作れる (Types/Classes unification を見よ)。

class c (c_parent):
def __init__(self, name):
self.name = name
def print_name(self):
print "I'm", self.name
def call_parent(self):
c_parent.print_name(self)

instance = c('tom')
print instance.name
'tom'
instance.print_name()
"I'm tom"

親クラスにアクセスするは、そのメソッドを直接コールし、"self" を明示的に指定する (上記例の call_parent メソッドを見よ)。
数値演算子やシーケンス、マップインデックスなどを実装する特殊メソッドが利用できる。

型とクラスの統一

基本的型 である int, float, str, list, tuple, dictfile は、2.2 以降、 基底クラスオブジェクトを継承したクラスとして動作する。その継承もできる。
x = int(2) # 組み込みのキャスト関数は、基本的型のコンストラクタである
y = 3  # <=> int(3) (リテラルは新しい基本的型のインスタンスである)
print type(x), type(y) # int, int
assert isinstance(x, int) # replaces isinstance(x, types.IntType)
assert issubclass(int, object) # base types derive from base class 'object'.
s = "hello" # <=> str("hello")
assert isinstance(s, str) f = 2.3 # <=> float(2.3) class MyInt(int): pass # may subclass base types x,y = MyInt(1), MyInt("2") print x, y, x+y # => 1,2,3 class MyList(list): pass l = MyList("hello") print l # ['h', 'e', 'l', 'l', 'o']
新しいスタイル のクラスは object を継承している。 古いスタイル のクラスは継承していない。

ドキュメンテーション文字列

モジュール・クラス・関数には、説明文を記述できる。それは、 それらの内容の先頭部分に文字列リテラルを記述することで行う。この説明文は、 モジュール・クラス・関数内において '__doc__' 属性で取得できる。

class C:
    "A description of C"
        def __init__(self):
            "A description of the constructor"
            # etc.
            
c.__doc__ == "A description of C".
c.__init__.__doc__ == "A description of the constructor"

イテレータ

  • イテレータ は、オブジェクトの 1 種で、 ある 集合 の要素を列挙するものである。メソッドは、next() という 1 つだけで、 次の要素を返す、または StopIteration を送出する。
  • あるオブジェクト obj のイテレータは、組み込み関数 iter(obj) で取得できる。この関数は、obj.__class__.__iter__() をコールする。
  • 各集合は、__iter__()next() とを実装した 独自の イテレータを持っている。
  • 組み込みの集合 (リスト・タプル・文字列・辞書) は、 __iter__() を実装している。辞書型(マップ型)は、そのキーを列挙する。 ファイル型は、その各行を列挙する。
  • イテレータから リスト または タプル を生成できる。例、 list(anIterator)
  • ループ が行われるとき、イテレータが暗黙的に使われる。
    • for elt in collection:
    • if elt in collection:
    • タプルの代入: x,y,z= collection

ジェネレータ

  • ジェネレータ (generator) は、関数の1種で、複数回のコールに渡って状態を維持し コールのたびに 新たな 値を生成する。yield キーワードを使って コール毎に(1つづつ)値を返す。return または StopIteration() 送出により、値の列挙の終了を通知する。
  • 典型的な使用目的は、IDや名前一覧・シリアル番号などの生成である。 Fancier applications like nanothreads are also possible.
  • ジェネレータの使用方法: ジェネレータ関数 をコールして ジェネレータ・オブジェクトを取得する。ついで〔そのジェネレータオブジェクトを〕 generator.next() とコールすると次の値が得られる。StopIteration が送出されるまで繰り返しコールする。
  • 2.4 で ジェネレータ表現 (generator expressions) が導入された [PEP 289]。ジェネレータ表現は リスト内包表記 (list comprehensions) に似ているが、 ジェネレータはコールのたびに要素を1つ1つ生成する点が異なる。 ジェネレータは長い順列などに適している。
      linkGenerator = (link for link in get_all_links() if not link.followed)
      for link in linkGenerator:
        ...process link...

    ジェネレータ表現は必ず 括弧() で囲まなければならない。
  • 2.2では, 次の文でジェネレータを 有効にする 必要がある。 from __future__ import generators (2.3 以降では不要)

def genID(initialValue=0):
  v = initialValue
  while v < initialValue + 1000:
    yield "ID_%05d" % v
    v += 1
  return    # または: raise StopIteration()

generator = genID() # ジェネレータの生成
for i in range(10): # 10 個の値を生成
  print generator.next()

ディスクリプタ / 属性アクセス

  • ディスクリプタ (Descriptor)ディスクリプタ・プロトコル に対応する次の 3 つのメソッドを実装したオブジェクトである。
    • __get__(self, obj, type=None) --> value
    • __set__(self, obj, value)
    • __delete__(self, obj)
    Python は、新形式クラス (new-style class) の属性やメソッドの記述やアクセスの際に ディスクリプタ を透過的に使う (例、object の派生クラス)。 [ 詳細]
  • 定義可能な組み込みのディスクリプタ
    • スタティックメソッド (Static methods) : staticmethod(f) とすると、メソッド f(x) がスタティック (unbound) になる。
    • クラスメソッド (Class methods): 第1引数にクラスをとる以外はスタティックと同様。 => f = classmethod(f) とすると、メソッド f(theClass, x) がクラスメソッドになる。
    • プロパティ (Properties) : プロパティ は新しい組み込み型 property の インスタンスである。プロパティは属性に対する ディスクリプタ プロトコルを実装している。 => propertyName = property(fget=None, fset=None, fdel=None, doc=None) として、クラスの内部または外部で属性を定義する。定義後は propertyName または obj.propertyName で属性にアクセスする。
    • スロット (Slots) : 新形式クラスでは __slots__ クラス属性を定義すると、割り当て可能な 属性名を制限できる。 これにより、属性名のミスタイプを防止できる (通常、ミスタイプをしても Python が発見してくれることはなく、 新しい属性が生成される)。 例、 __slots__ = ('x', 'y')
      :最近の議論からすると, slot を使用する本当の目的はいまだ明確ではない (最適化?)。 よって slot の使用は奨励されないであろう。

関数・メソッドのデコレータ

  • [PEP 318] デコレータ (decorator) D は、 @D と記述する。記述位置は、デコレート対象となる関数・メソッドの直前の行である。
        @D
        def f(): ...
    上記は次の記述と同じ。
        def f(): ...
        f = D(f)

  • 複数のデコレータを重ねて適用することもできる。
        @A
        @B
        @C
        def f(): ...
    上記は次の記述と同じ。
        f = A(B(C(f)))
  • デコレータは単なる関数である。デコレート対象となる関数を引数にとり、同じ関数またはコール可能な新しいものを返す。
  • デコレータ関数は引数をとれる。
        @A
        @B
        @C(args)

    上記は次の通り表現できる。
        def f(): ...
        _deco = C(args)
        f = A(B(_deco(f)))

  • デコレータの記述 @staticmethod@classmethod は、等価な記述 f = staticmethod(f)f = classmethod(f) をよりエレガントな形式に置き換えたものである。

その他

lambda [param_list]: returnedExpr
無名関数 (anonymous function) を生成する。
returnedExpr は 式(expression) でなければならない。文 (statement) とはできない (例えば、 "if xx:...", "print xxx", などは不可) 。さらに、改行も入れてはならない。 lambda は filter(), map(), reduce() 関数や、 GUI コールバック のために使用することが多い。

リスト内包表記 (List comprehensions)
result = [expression for item1 in sequence1  [if condition1]
[for item2 in sequence2 ... for itemN in sequenceN]
]
上記は次の記述と同じ。
result = []
for item1 in sequence1:
for item2 in sequence2:
...
for itemN in sequenceN:
if (condition1) and further conditions:
result.append(expression)

スコープのネスト
2.2より、スコープのネストfrom __future__ import nested_scopes のように明示的に有効にする必要が無くなった。スコープのネストは常に使用可能である。

組み込み関数

組み込み関数は、__builtin__ モジュールに定義されており、自動的にインポートされる。
組み込み関数
関数 結果
__import__(name[, globals[,locals[,from list]]]) 指定したコンテキストのモジュールをインポートする (詳細は ライブラリリファレンス を見よ)
abs(x) 数値 x の絶対値を返す
apply(f, args[, keywords]) 関数/メソッド f を、引数に args とオプションでキーワードを指定してコールする。 2.3 で撤廃された。 apply(func, args, keywords) に代わって func(*args, **keywords) を使用すること。 [詳細]
basestring() strunicode の抽象型の親クラスである。 直接のコールやインスタンス生成はできず、isinstance(obj, basestring) のような利用に有用である
bool([x]) 標準の真値テストを使って、値をブール値に変換する。 x が偽なら False を返す。さもなくば True を返す。 bool はクラス/型でもあり、int の子クラスである。 ただし、bool クラスを継承することはできない。 クラスのインスタンスは FalseTrue だけである。 ブール演算 も見よ
buffer(object[, offset[, size]]) object のスライスからバッファを返す。 object は、(文字列、アレイ、バッファといった) バッファ呼び出しインタフェースを サポートするオブジェクトでなければならない。非必須関数。 [詳細]
callable(x) x がコール可能であれば True を返す。さもなくば False を返す
chr(i) ASCII コードが整数 i である文字 1 字からなる文字列を返す
classmethod(function) function のクラスメソッドを返す。 クラスメソッドは、暗黙の第 1 引数としてクラスをとる。 インスタンスメソッドが暗黙の第 1 引数としてインスタンスをとるのと同様である。 クラスメソッドは次の記法で宣言する。

  class C:
    def f(cls, arg1, arg2, ...): ...
    f = classmethod(f)


クラス C.f() でコール、またはインスタンス C().f() でコールする。インスタンスは、それが所属するクラス以外の事項は無視される。 派生クラスのクラスメソッドをコールすると、その派生クラスが暗黙の第 1 引数に 渡される。
2.4 以降、デコレータ 記法も使える。
  class C:
    @classmethod
    def f(cls, arg1, arg2, ...): ...

cmp(x,y) x <, ==, > y のとき、それぞれ、負値、0、正値を返す
coerce(x,y) 二つの数値型の引数を共通の型に変換したタプルを返す。 非必須関数。 [詳細]
compile(string, filename, kind[, flags[, dont_inherit]]) 文字列 string をコンパイルし、コードオブジェクトを返す。 filename 引数は、任意の文字列で、エラーメッセージに使われる。 通常は対象のコードが読み込まれたファイル名を指定する。ファイルから読み込んだのでなければ、 '<string>' を指定する。 kind 引数には、string 引数が文1つだけのとき 'eval' を、 各文の評価結果を None を除いて表示させるときは 'single' を、それ以外は 'exec' を指定する。 新しい引数 flagsdont_inherit とは future 文に関連する。
complex(real[, image]) 複素数オブジェクトを生成する (J または j を接尾辞として使うのと同じ。例、1+3J).
delattr(obj, name) オブジェクト objname という名前の属性を削除する <=> del obj.name
dict([mapping-or-sequence]) 引数に指定した値で初期化した辞書を返す (引数はオプションで、非指定のとき空の辞書を返す) 引数は、(キー,値)というペアのシーケンス(または、イテレータ対応のもの)にできる
dir([object]) 引数を指定しないと、現在のローカルシンボルテーブルにある名前のリストを返す。 モジュールオブジェクトまたはクラスオブジェクト・インスタンスオブジェクトを arg を指定すると、その属性辞書にある名前のリストを返す
divmod(a,b) (a/b, a%b) というタプルを返す
enumerate(iterable) iterable についての(インデックス, 値)という各ペアを返値とするイテレータを返す。 例、List(enumerate('Py')) -> [(0, 'P'), (1, 'y')].
eval(s[, globals[, locals]]) Python の 表現式 である s を評価する。 このとき(オプションで)、辞書 globalslocals を それぞれグローバルとローカルな名前空間として使う。 s には、NUL や 改行を記述できない。 s にコードオブジェクトの指定はできる。 locals は、Python 組み込みの辞書型だけでなく、 任意のマップ型とできる。
x = 1; assert eval('x + 1') == 2
(表現式ではなく、 の実行には、exec 文か 組み込み関数 execfile を使う)
execfile(file[, globals[,locals]]) 指定したファイルを単に読み込み実行する。import 文と異なり、新たなモジュールを生成しない。 locals は、Python 組み込みの辞書型だけでなく、 任意のマップ型とできる。
file(filename[,mode[,bufsize]]) ファイルをオープンし、ファイル オブジェクトを返す。 open 関数のエイリアス
filter(function,sequence) sequence 引数の要素のうち、関数 function が真を返すような要素からなるリストを構築する。 function は引数を1つだけとる関数
float(x) 数・文字列を浮動小数点数へ変換する
frozenset([iterable]) frozenset (変更不能な set) オブジェクトを返す。(変更不能である)要素は iterable から取得するか、デフォルトで空である。Set 型 も見よ。
getattr(object,name[,default])) object オブジェクトから name 属性を取得する。例、 getattr(x, 'f') <=> x.f) 。 指定した属性が無ければ、指定していればdefault を返す。さもなくば、AttributeError を送出する
globals() 現在のグローバル変数を示す辞書を返す
hasattr(object, name) オブジェクト object に、属性 name があれば、True を返す
hash(object) オブジェクトのハッシュ値を(もしあれば)返す
help([object]) 組み込みのヘルプシステムを起動する。 引数を指定しないと、対話的ヘルプシステムが起動する。 object に文字列 (モジュールや関数・クラス・メソッド・キーワード・ドキュメント項目のname)を指定すると、 ヘルプページがコンソールに表示される。さもなくば、object についてのヘルプページが 構築される
hex(x) x を16進数文字列に変換する
id(object) object の識別値(整数)を返す
input([prompt]) 入力を読み込み 評価するprompt を指定していれば入力に前もって表示する。 readline モジュールが利用可であれば、行編集とヒストリ機能を使える
int(x[, base]) 文字列を整数に変換する。 オプションで、変換の基数を base 引数に指定できる
intern(aString) aString を隔離文字列のテーブルに格納した上で、文字列を返す。 2.3 以降、隔離文字列は永続的(ガベージコレクションされないもの) では無くなった。[詳細] も見よ。
isinstance(obj, classInfo) objclassInfo クラス のインスタンスであれば True を返す。 または、classInfo のオブジェクトであれば True を返す。 (classInfo は、クラスや型の タプル にできる)。 issubclass(A,B) が真なら、isinstance(x,A) => isinstance(x,B)
issubclass(class1, class2) Returns true if class1class2 を継承していれば (または class1class2 と同じであれば) True を返す
iter(obj[,sentinel]) obj についての イテレータ を返す。sentinel 引数を略したときは、obj は、__iter__() または __getitem__() を実装したコレクションとする。 sentinel 引数を指定したとき、返されるイテレータは、 obj を引数なしで コール する。 返値が sentinel と等しいと StopIteration を送出し、さもなくば 返値をそのまま返す。「イテレータ」を見よ
len(obj) オブジェクト (シーケンス・辞書や __len__ を実装しているクラス) の 長さ(要素の数)を返す
list([seq]) seq と同じ要素をもち、かつ順番も同じなリスト、または空のリストを返す。 seq は、シーケンスまたは イテレーションをサポートするコンテナ・イテレータオブジェクトとできる seq がリストなら、その コピー を返す
locals() 現在のローカル変数を示す辞書を返す
long(x[, base]) 文字列を長整数に変換する。 オプションで、変換の基数を base 引数に指定できる
map(function, sequence[, sequence, ...]) 関数 functionsequence の各要素に適用した結果のリストを返す。 sequence を複数指定すると、各シーケンスの要素と対応した複数の引数が指定されて 関数がコールされる。シーケンスの長さが異なるときは、不足の部分には None が当てられる。functionNone を指定すると、シーケンスの要素のリスト (または、複数シーケンスの場合はタプルのリスト)を返す => map() に代わって リスト内包表記 の使用も考慮せよ
max(seq)
max(v1, v2 ...)
seq 引数をひとつだけ指定すると、シーケンス(文字列やタプル・リストなど)の要素のうち 最大 のものを返す。引数を複数指定すると、それら引数のうち最大のものを返す
min(seq)
min(v1, v2 ...)
seq 引数をひとつだけ指定すると、シーケンス(文字列やタプル・リストなど)の要素のうち 最小 のものを返す。引数を複数指定すると、それら引数のうち最大のものを返す
object() ユーザ定義の属性やメソッドを持たない、新しいオブジェクトを返す。 object新形式クラス の基底クラスであり、 そのメソッドは、すべての新形式クラスのインスタンスで共通である
oct(x) 数を8進文字列に変換する
open(filename [, mode='r', [bufsize]]) 新規にファイルオブジェクトを返す。 エイリアス関数 file() も見よ。 ファイルを文字エンコードを指定し、透過的なエンコード・デコード機能を有効にするには、 codecs.open() を用いる。
  • filename 引数は、オープンするファイル名
  • mode 引数には、ファイルのオープン方法を指定する
    • 'r' 読み出し
    • 'w' 書き込み (truncating an existing file)
    • 'a' 追記書き込み
    • '+' (上記に追加して) 更新 (note that 'w+'truncates the file)
    • 'b' (上記に追加して) バイナリ
    • 'U' (または 'rU') 全改行文字モード での読み出し。 すべての種類の改行 (CR, LF, CR+LF) が、LF ('\n') に変換される
  • bufsize に 0 を指定すると、バッファリングが行われない。 1 だと1行ごとのバッファリング、負数や省略はシステムごとのデフォルトの方法、 1以上だと(およそ)指定したサイズのバッファリングが行われる
ord(c) c 引数 (長さが1の文字列) の整数 ASCII 値を返す。 ユニコード文字にも使用可
pow(x, y [, z]) xy 上を返す [モジュロ z] 。** 演算子も見よ
property([fget[, fset[, fdel[, doc]]]]) 新形式クラスobject を継続するクラス)におけるプロパティ属性を返す。 fget, fset, fdel はそれぞれ、プロパティ値の取得、プロパティ値の設定、 プロパティの削除を行う関数である。一般的な使用方法は次の通り。
class C(object):
  def __init__(self): self.__x = None
  def getx(self): return self.__x
  def setx(self, value): self.__x = value
  def delx(self): del self.__x
  x = property(getx, setx, delx, "I'm the 'x' property.")
range(start [,end [, step]]) 整数のリストを返す。
引数 1 つだと、0 から 引数-1 のリスト
引数 2 つだと、start から end-1 のリスト
引数 3 つだと、start から end まで step ステップのリスト
raw_input([prompt]) prompt があれば表示した上で、標準入力から文字列を読み取る (末尾の \n は除去しない)。 input() も見よ
reduce(f, list [, init]) 引数 2 つの関数 flist の要素に順々に適用し、リストを単一の値にする。 init があれば list の前に付け加える
reload(module) インポート済みのモジュールを再パース・再初期化する。対話モードで、モジュールを修正後に再読み込みしたいときに有用。 文法的間違いは無いが、初期化に失敗したモジュールについては、reload() をコールする前に、もういちどインポートする 必要がある。
repr(object) 指定したオブジェクトについて、印字可能で、できれば 評価可能な 文字列を返す。 <=> `object` (バッククオートの使用)。 クラスで (__repr__ を使って) 再定義できる。 str() も見よ
round(x, n=0) x を小数点以下 n 桁で丸めた浮動小数点数を返す
set([iterable]) set オブジェクトを返す。その要素は、iterable から取得するか、デフォルトで空である。Set 型 も見よ
setattr(object, name, value) getattr() と対をなす関数。setattr(o, 'foobar', 3) <=> o.foobar = 3 。属性が存在しなければ、新規に 生成 する
slice([start,] stop[, step]) 読み出し専用属性 start, stop, step を持ち、範囲を表す スライスオブジェクト を返す
sorted(iterable[, cmp[, key[, reverse]]]) iterable の要素をソートした 新たな リストを返す。 list.sort() とは異なり、リストをインプレースでソート せず、 文字列やタプルなど変更不能なシーケンスにも適用できる。sequences.sort メソッドを見よ
staticmethod(function) 関数 function の静的メソッドを返す。 静的メソッドは暗黙の第 1 引数を取らない。 静的メソッドの宣言は次の記法を使う。

  class C:
    def f(arg1, arg2, ...): ...
    f = staticmethod(f)


このメソッドは、クラスで C.f() と呼び出すことも、 インスタンスとして C().f() と呼び出すこともできる。 インスタンスはそのクラスが何であるかを除いて無視される。
2.4 以降、 デコレータ 記法が使える。
  class C:
    @staticmethod
    def f(cls, arg1, arg2, ...): ...

str(object) 指定したオブジェクトについて、きれいに印字できるような文字列表現を返す。 クラスで (__str__) を使って再定義できる。repr() も見よ
sum(iterable[, start=0]) 数の(文字列不可)シーケンスの要素の総和、プラス start を返す。 シーケンスが空だと、start を返す
super( type[, object-or-type]) type の上位クラスを返す。第 2 引数を略すと、返される上位オブジェクトは非バウンド (unbound) となる。第 2 引数がオブジェクトなら、isinstance(obj, type) が真でなければならない。 第 2 引数が型なら、issubclass(type2, type) が真でなければならない。 一般的な使用方法は次の通り
class C(B):
  def meth(self, arg):
    super(C, self).meth(arg)
tuple([seq]) seq と要素が同じで、かつ順番も同じであるタプルを返す。 seq は、シーケンス、 イテレーションに対応するコンテナ、イテレータオブジェクトとできる。 seq がタプルなら、そのタプルをそのまま(コピーせずに)返す
type(obj) obj の型を表す タイプオブジェクト を返す(モジュール types を見よ)。 例、 import types if type(x) == types.StringType: print 'It is a string'. : if isinstance(x, types.StringType)... を使用する方が望ましい
unichr(code) 指定した code 値に対応するユニコード文字の1文字を返す
unicode(string[, encoding[,error]]]) 8 ビット文字列からユニコード文字列を生成する。 エンコーディング名とエラー処理方法 ('strict', 'ignore',or 'replace') を指定する。 __unicode__() メソッドがあるオブジェクトについては、 このメソッドを引数なしで呼び出して Unicode 文字列を生成する。
vars([object]) 引数を略すと、現在のローカルシンボルテーブルに対応する辞書を返す。 引数にモジュールかクラス、クラスインスタンスを指定すると、 そのオブジェクトのシンボルテーブルに対応する辞書を返す。 文字列フォーマット演算子 "%" と一緒に使うと便利である
xrange(start [, end [, step]]) range() と似ているが、リスト全体を一挙にストアしない。 メモリが限られている場合の範囲が大きい "for" リストに有用である。
zip(seq1[, seq2,...]) [これは圧縮ツールではない!圧縮は zipfile] モジュールを見よ] 引数のシーケンスの各要素に対応するタプルからなるリストを返す。 2.4 以降、引数無しでコールすると、空のリストを返す (TypeError を送出しない)

組み込み例外クラス

Exception
すべての例外の親クラス。 exception.args は、コンストラクタの引数のタプルをとる。
  • StandardError
    組み込み例外の基底クラス。Exception クラスを継承している。
    • ArithmeticError
      算術上のエラーの基底クラス。
      • FloatingPointError
        浮動小数点演算が失敗した。
      • OverflowError
        過大な算術演算を行った。
      • ZeroDivisionError
        除算や剰余演算での第 2 引数がゼロであった。
    • AssertionError
      assert 文が失敗した。
    • AttributeError
      属性の参照や代入が失敗した。
    • EnvironmentError [1.5.2 以降]
      Python の外部でエラーが発生した。args 属性は (errno, errMsg...) となる。
      • IOError [1.5.2 で変更]
        入出力関連の操作が失敗した。
      • OSError [1.5.2 以降]
        os モジュールの os.error 例外で使われる。
        • WindowsError
          Windows 特有のエラーが発生した。または、エラー番号が errno 値に対応しない。
    • EOFError
      input() や raw_input() で、データをまったく読まないうちにファイルの終端 (EOF) に達した。
    • ImportError
      モジュールや名前を見つけられず、import に失敗した。
    • KeyboardInterrupt
      ユーザが割り込みキー(通常は`CTRL-C')を押した。
    • LookupError
      IndexError と KeyError の基底クラス。
      • IndexError
        シーケンスのインデクス指定が範囲を超えている。
      • KeyError
        参照したマップ(辞書)のキーが存在しない。
    • MemoryError
      メモリ不足が発生した。ただし、復旧可能性あり。
    • NameError
      ローカルまたは(非限定な (unqualified))グローバルの名前が見つからない。
      • UnboundLocalError
        参照したローカル変数には値が未代入であった。
    • ReferenceError
      弱参照プロキシ (weak reference proxy) を使ってガーベジコレクション済のオブジェクトにアクセスしようとした。
    • RuntimeError
      旧版のその他のエラー。他のより適切なエラーを定義すること。
      • NotImplementedError [1.5.2 以降]
        メソッドが実装されていない。
    • SyntaxError
      パース時に文法エラーが見つかった。
      • IndentationError
        パース時にインデントに関する文法エラーが見つかった。
        • TabError
          スペース文字とタブ文字が不適切に混ぜて使われている。
    • SystemError
      軽微なインタープリタ内部のバグ。python 開発者への報告が望まれる。
    • TypeError
      組み込み演算または関数に不適切な型を渡した。
    • ValueError
      TypeError 以外の引数エラー。
      • UnicodeError
        エンコードまたはデコード時にユニコード関連のエラーが起きた。
        • UnicodeDecodeError
          ユニコードのデコードエラーが起きた。
        • UnicodeEncodeError
          ユニコードのエンコードエラーが起きた。
        • UnicodeTranslateError
          ユニコードの変換エラーが起きた。
  • StopIteration
    イテレータの next() メソッドで、次の値が存在しない場合に送出される。
  • SystemExit
    sys.exit() が行われた。
  • Warning
    警告 (warning) の基底クラス(warning モジュールも見よ)。
    • DeprecationWarning
      撤廃された機能を使った。
    • FutureWarning
      将来的に意味構成が変わる予定な構文を使った。
    • OverflowWarning
      数値演算がオーバーフローした。この警告は、Python 2.5 で撤廃される。
    • PendingDeprecationWarning
      撤廃予定の機能を使用した。
    • RuntimeWarning
      ラインタイムがおかしい挙動をした。
    • SyntaxWarning
      構文が曖昧である。
    • UserWarning
      ユーザコードが生成する警告の基底クラス。

標準メソッドと演算子のユーザ定義クラスでの再定義

標準メソッドや演算子は、'__method__' という形式の特殊メソッドにマップされており、 (ユーザ定義クラスで)再定義可能 である。例、
class C:
def __init__(self, v): self.value = v
def __add__(self, r): return self.value + r

a = C(3) # sort of like calling C.__init__(a, 3)
a + 4 # is equivalent to a.__add__(4)

すべてのクラスで使用できる特殊メソッド
メソッド 説明
__new__(cls[, ...]) (コンストラクタとして)インスタンスを生成する。 __new__ が cls のインスタンスを返したら、__init__ を 後ろの引数 (...) を渡してコールする。さもなくば、 __init__ はコールされない。 詳細は、ここ を見よ
__init__(self, args) (コンストラクタとして)インスタンスを初期化する
__del__(self) オブジェクトが消滅する際(参照数が 0 になった際)にコールされる
__repr__(self) repr()`...` 変換
__str__(self) str()print
__cmp__(self,other) selfother を比較し <0, 0, >0 を返す。 >, <, == 等の実装に使われる
__lt__(self, other) self < other という比較。ブール値として解釈可能な値を返すか、例外を送出する
__le__(self, other) self <= other という比較。ブール値として解釈可能な値を返すか、例外を送出する
__gt__(self, other) self > other という比較。ブール値として解釈可能な値を返すか、例外を送出する
__ge__(self, other) self >= other という比較。ブール値として解釈可能な値を返すか、例外を送出する
__eq__(self, other) self == other という比較。ブール値として解釈可能な値を返すか、例外を送出する
__ne__(self, other) self != other (と self <> other) という比較。 ブール値として解釈可能な値を返すか、例外を送出する
__hash__(self) 32 ビットのハッシュ値を計算する。hash() 関数や辞書演算に使われる
__nonzero__(self) 真値テストに使われ、0 か 1 を返す。このメソッドが未定義の場合、__len__() が 定義済みならコールされる。さもなければ、すべてのクラスインスタンスが真とみなされる
__getattr__(self,name) 属性 name が見つからない場合にコールされる。 __getattribute__ も見よ
__getattribute__( self, name) __getattr__ と同様だが、 属性 name がアクセスされる際に、常に コールされる
__setattr__(self, name, value) 属性に値がセットされる際にコールされる。 (このメソッド内では、"self.name = value" は使ってはならない。 代わって "self.__dict__[name] = value" を使うこと)
__delattr__(self, name) 属性 name が削除される際にコールされる
__call__(self, *args, **kwargs) インスタンスが関数としてコールされると、このメソッドがコールされる。 つまり、obj(arg1, arg2, ...)obj.__call__(arg1, arg2, ...) の短縮記法である

演算子

operator モジュール内の一覧を見よ。 演算子に対応する関数名は、前後に '__' が付くものと付かないものと、 2 つの形式 がある (たとえば、 __add__add)。

数値演算子の特殊メソッド
演算子 特殊メソッド
self + other __add__(self, other)
self - other __sub__(self, other)
self * other __mul__(self, other)
self / other __div__(self, other) および __truediv__(self,other) ただし __future__.division が有効のとき
self // other __floordiv__(self, other)
self % other __mod__(self, other)
divmod(self,other) __divmod__(self, other)
self ** other __pow__(self, other)
self & other __and__(self, other)
self ^ other __xor__(self, other)
self | other __or__(self, other)
self << other __lshift__(self, other)
self >> other __rshift__(self, other)
nonzero(self) __nonzero__(self) (ブールテストに使用)
-self __neg__(self)
+self __pos__(self)
abs(self) __abs__(self)
~self __invert__(self) (ビット毎)
self += other __iadd__(self, other)
self -= other __isub__(self, other)
self *= other __imul__(self, other)
self /= other __idiv__(self, other) および __itruediv__(self,other) ただし __future__.division が有効のとき
self //= other __ifloordiv__(self, other)
self %= other __imod__(self, other)
self **= other __ipow__(self, other)
self &= other __iand__(self, other)
self ^= other __ixor__(self, other)
self |= other __ior__(self, other)
self <<= other __ilshift__(self, other)
self >>= other __irshift__(self, other)

変換
組み込み関数 特殊メソッド
int(self) __int__(self)
long(self) __long__(self)
float(self) __float__(self)
complex(self) __complex__(self)
oct(self) __oct__(self)
hex(self) __hex__(self)
coerce(self, other) __coerce__(self, other)
バイナリ演算子には、それぞれ 右側相当 のメソッドがあり、 クラスインスタンスが演算子の右側にある場合にコールされる。
  • a + 3  calls __add__(a, 3)
  • 3 + a  calls __radd__(a, 3)

コンテナ 特有の演算
演算子 特殊メソッド 備考
すべての シーケンスと辞書
len(self) __len__(self) オブジェクトの長さ, >= 0. 長さ 0 == false
self[k] __getitem__(self, k) インデックスまたはキーが k の要素を取得する(インデックスは 0 始まり)。 k がスライスオブジェクトなら、スライスを返す
self[k] = value __setitem__(self, k, value) インデックス/キー/スライス k の要素を設定する k.
del self[k] __delitem__(self, k) インデックス/キー/スライス k の要素を削除する k.
elt in self
elt not in self
__contains__(self, elt)
not __contains__(self, elt)
普通にシーケンスの繰返しを使うより効率的である
iter(self) __iter__(self) 要素についてのイテレータを返す (辞書のキーについては self.iterkeys())。 イテレータ を見よ
シーケンス の標準メソッド、ほか
self[i:j] __getslice__(self, i, j) 2.0 で 撤廃された。代わって、__getitem__ の引数にスライスオブジェクトを指定する
self[i:j] = seq __setslice__(self, i, j,seq) 2.0 で 撤廃された。代わって、__setitem__ の引数にスライスオブジェクトを指定する
del self[i:j] __delslice__(self, i, j) Sself[i:j] = [] と同じ。 2.0 で 撤廃された。代わって、__delitem__ の引数にスライスオブジェクトを指定する
self * n __mul__(self, n) (公式ドキュメントでは __repeat__ とあるが動作しない)
self + other __add__(self, other) (公式ドキュメントでは __concat__ とあるが動作しない)
辞書 の標準メソッド、ほか
hash(self) __hash__(self) オブジェクト self のハッシュ値。辞書のキーに使われる

型の情報状態を示す特殊属性

Tip: ライブオブジェクトを精査するには、 inspect モジュールを使う。

リストと辞書
属性 意味
__methods__ (リスト、R/O) オブジェクトのメソッド名一覧。 撤廃された。代わって、dir() を使うこと
モジュール
属性 意味
__doc__ (文字列/None、R/O)doc string (<=> __dict__['__doc__'])
__name__ (文字列、R/O)モジュール名 (__dict__['__name__'] も)
__dict__ (辞書、R/O) モジュールの名前空間
__file__ (文字列/未定義、R/O)pyc, .pyo か .pyd(インタプリタに静的リンクされている場合は未定義) のパス名。2.3 以前では、現在のスクリプトのファイル名を取得するには sys.argv[0] を使う
__path__ (リスト/未定義、R/O)パッケージを検索するディレクトリパスのリスト(パッケージ専用)
クラス
属性 意味
__doc__ (文字列/None、R/O)doc string (<=> __dict__['__doc__'])
__name__ (文字列, R/W) クラス名 (__dict__['__name__'] も)
__module__ (文字列, R/W) クラスが定義されたモジュール名
__bases__ (タプル, R/W) 親クラス
__dict__ (辞書, R/W) (クラスの名前空間での) 属性
インスタンス
促成 意味
__class__ (クラス, R/W) インスタンスが所属するクラス
__dict__ (辞書, R/W) 属性
ユーザ定義関数
属性 意味
__doc__ (文字列/None、R/O)ddoc string
__name__ (文字列, R/O) 関数名
func_doc (R/W) __doc__ と同じ
func_name (R/O, 2.4 以降は R/W): __name__ と同じ
func_defaults (タプル/None, R/W) (あれば)引数のデフォルト値
func_code (コード, R/W) 関数の本体をコンパイルしたコードオブジェクト
func_globals (辞書, R/O) 関数のグローバル変数の辞書への参照
ユーザ定義のメソッド
Attribute Meaning
__doc__ (文字列/None, R/O) doc string
__name__ (文字列, R/O) メソッド名 (im_func.__name__ と同じ)
im_class (クラス, R/O) メソッドが定義された(基底)クラス
im_self (インスタンス/None, R/O) 対象となるインスタンスオブジェクト(unbound なら None)
im_func (関数, R/O) 関数オブジェクト
組み込み関数・メソッド
属性 意味
__doc__ (文字列/None, R/O) doc string
__name__ (文字列, R/O) 関数名
__self__ [メソッドのみ] 対象となるオブジェクト
__members__ (['__doc__','__name__','__self__']) というリスト。 撤廃された。代わって、dir() を使うこと
コード
属性 意味
co_name (文字列, R/O) 関数名
co_argcount (整数, R/0) 固定引数の数
co_nlocals (整数, R/O) ローカル変数の数 (引数も含む)
co_varnames (タプル, R/O) ローカル変数の名前 (引数から始まる)
co_code (文字列, R/O) バイトコード命令のシーケンス
co_consts (タプル, R/O) バイトコードで使われるリテラル。初めの要素は関数ドキュメント(か None)
co_names (タプル, R/O) バイトコードで使われる名前
co_filename (文字列, R/O) コンパイルされたコードのファイル名
co_firstlineno (整数, R/O) 関数の先頭行番号
co_lnotab (文字列, R/O) 文字列エンコードされた、行番号へのバイトコードオフセット
co_stacksize (整数, R/O) 必要なスタックサイズ (ローカル変数を含む)
co_flags (int, R/O) インタプリタのフラグ。"*arg" 記法を使う場合はビット 2 がセット、 '**keywords' 記法を使う場合はビット 3 がセットされる
フレーム
属性 意味
f_back (フレーム/None, R/O) (コール元の)前スタックフレーム
f_code (コード, R/O) 現フレームで実行中のコードオブジェクト
f_locals (辞書, R/O) ローカル変数
f_globals (辞書, R/O) グローバル変数
f_builtins (辞書, R/O) 組み込みの名前
f_restricted (整数, R/O) 関数が制限実行モードで実行されていることを示すフラグ
f_lineno (整数, R/O) 現在の行番号
f_lasti (整数, R/O) 現在実行中の命令 (バイトコードのインデックス)
f_trace (関数/None, R/W) ソースの各行の先頭でコールされるデバッグ用のフック
f_exc_type (型/None, R/W) 直近の例外の型
f_exc_value (任意, R/W) 直近の例外の値
f_exc_traceback (トレースバック/None, R/W) 直近の例外のトレースバック
トレースバック
属性 意味
tb_next (フレーム/None, R/O) スタックトレースでの次(例外が発生した側)のレベル
tb_frame (フレーム, R/O) 現レベルの実行フレーム
tb_lineno (整数, R/O) 例外が発生した行番号
tb_lasti (整数, R/O) 現在実行中の命令 (バイトコードのインデックス)
スライス
属性 意味
start (任意/None, R/O) 下限(スライス範囲に含まれる)
stop (任意/None, R/O) 上限(スライス範囲には含まれない)
step (任意/None, R/O) とび幅
複素数
属性 意味
real (浮動小数点数, R/O) 実部
imag (浮動小数点数, R/O) 虚部
xrange
属性 意味
tolist (組み込みメソッド, R/O) ?

主要なモジュール

sys

システムに関連するパラメータと関数。 [詳細]

sys の変数(一部)
変数 内容
argv Python スクリプトに渡されたコマンドライン引数のリスト。 sys.argv[0] はスクリプト名となる
builtin_module_names インタプリタにリンクされている(C 言語による)モジュールの名前の文字列のリスト
byteorder 〔プラットホームの〕標準のバイトオーダ。'big'(-endian) または 'little'(-endian)
check_interval スレッドスイッチやシグナルをチェックする時間間隔 (バーチャルマシンにおける命令数で示される)
copyright Python インタプリタに適用されるコピーライトについての文字列
exec_prefix
prefix
Python のファイルがインストールされる基底ディレクトリ(プラットホーム依存)。例、 'C:\\Python23', '/usr'.
executable Python インタプリタの実行バイナリの名前(例、'C:\\Python23\\python.exe', '/usr/bin/python')
exitfunc 引数無しの関数を指定すると、インタプリタが終了する際にコールされる。 2.4 で撤廃された。 atexit モジュールを使用するべきである。
last_type, last_value, last_traceback 例外が捕捉されず、インタプリタがエラーを表示する場合にセットされる。デバッガにより使われる
maxint 整数型で使える最大の正の値。2.2 以降、 整数型と長整数型は区別されず、使える整数に上限値はない
maxunicode Unicode 文字について使用できる最大のコードポイント
modules ロード済のモジュールについての辞書
path 外部モジュールの検索パス。プログラム中で変更可能である。 sys.path[0] は、現在実行中のスクリプトあるディレクトリ
platform 現在のプラットホーム。例、"sunos5", "win32"
ps1, ps2 対話モードで使うプロンプト。通常、 ">>>" と "..." である
stdin, stdout, stderr 入出力に使うファイルオブジェクト。別のファイルオブジェクト (または、stdout/stderr については write(string) メソッドを、 stdin については readline() メソッドを持つ任意のオブジェクト) を代入するとリダイレクトできる。 __stdin__,__stdout____stderr__ は デフォルト値である
version Python インタプリタのバージョンを示す文字列
version_info Python のバージョンについてのタプル - (major, minor, micro, level, serial).
winver Windows プラットホームでレジストリキーの生成に使われるバ-ジョン番号 (例、 '2.2').
sys の関数(一部)
関数 結果
displayhook 対話モードで実行されたコマンドの結果を出力する際に使われる関数。 デフォルトは、 repr() 組み込み関数である。 __displayhook__ に起動時の値が保持される
excepthook 例外が捕捉されなかった場合に使われ、ユーザ定義関数を指定できる。 __excepthook__ に起動時の値が保持される
exit(n) 終了ステータス n として〔python スクリプトを〕終了する (一般的には、終了ステータス 0 で正常終了を意味する)。 SystemExit 例外を送出する (つまり、プログラム中で捕捉したり無視させたりできる)
getrefcount(object) object の参照数を返す。 object 引数も一時的に参照されるため、 予期する数よりも 1 多くなる
getcheckinterval() / setcheckinterval(interval) スレ ッドスイッチをチェックする時間間隔を取得/設定する (バイトコードの命令数で指定する。デフォルトは、2.2 まで 10、2.3 以降 100)
settrace(func) トレース関数を指定する。この関数は、コードの各行が実行される直前にコールされる
setprofile(func) 実行効率の調査に使用するプロファイル関数を指定する
exc_info() 現在処理中の例外についての情報を示すタプル (exc_type, exc_value, exc_traceback) を返す。 警告: トレースバックの戻り値をその例外を処理している関数のローカル変数に代入すると、 循環参照が発生する
setdefaultencoding(encoding) デフォルトの Unicode エンコーディングを変更する
getrecursionlimit() 再帰呼び出しの最大深さを取得する
setrecursionlimit() 再帰呼び出しの最大深さを設定する (デフォルトは 1000)

os

Miscellaneous operating system interfaces. [Full doc]

"synonym" for whatever OS-specific module (nt, mac, posix...) is proper for current environment. This module uses posix whenever possible.
(see also M.A. Lemburg's utility platform.py (now included in 2.3+)

Some os variables
Variable Meaning
name name of O/S-specific module (e.g. "posix", "mac", "nt")
path O/S-specific module for path manipulations.
On Unix, os.path.split() <=> posixpath.split()
curdir string used to represent current directory (eg '.')
pardir string used to represent parent directory (eg '..')
sep string used to separate directories ('/' or '\'). Tip: Use os.path.join() to build portable paths.
altsep Alternate separator if applicable (None otherwise)
pathsep character used to separate search path components (as in $PATH), eg. ';' for windows.
linesep line separator as used in text files, ie '\n' on Unix, '\r\n' on Dos/Win, '\r' on Mac.
Some os functions
Function Result
makedirs(path[, mode=0777]) Recursive directory creation (create required intermediary dirs); os.error if fails.
removedirs(path) Recursive directory delete (delete intermediary empty dirs); fails (os.error) if the directories are not empty.
renames(old, new) Recursive directory or file renaming; os.error if fails.
urandom(n) Returns a string containing n bytes of random data.

posix

Posix OS interfaces. [Full doc]
Do not import this module directly, import os instead ! (see also module: shutil for file copy & remove functions)

posix Variables
Variable Meaning
environ dictionary of environment variables, e.g. posix.environ['HOME'].
error exception raised on POSIX-related error.
Corresponding value is tuple of errno code and perror() string.
Some posix functions
Function Result
chdir(path) Changes current directory to path.
chmod(path, mode) Changes the mode of path to the numeric mode
close(fd) Closes file descriptor fd opened with posix.open.
_exit(n) Immediate exit, with no cleanups, no SystemExit, etc... Should use this to exit a child process.
execv(p, args) "Become" executable p with args args
getcwd() Returns a string representing the current working directory.
getcwdu() Returns a Unicode string representing the current working directory.
getpid() Returns the current process id.
getsid() Calls the system call getsid() [Unix].
fork() Like C's fork(). Returns 0 to child, child pid to parent [Not on Windows].
kill(pid, signal) Like C's kill [Not on Windows].
listdir(path) Lists (base)names of entries in directory path, excluding '.' and '..'. If path is a Unicode string, so will be the returned strings.
lseek(fd, pos, how) Sets current position in file fd to position pos, expressed as an offset relative to beginning of file (how=0), to current position (how=1), or to end of file (how=2).
mkdir(path[, mode]) Creates a directory named path with numeric mode (default 0777).
open(file, flags, mode) Like C's open(). Returns file descriptor. Use file object functions rather than this low level ones.
pipe() Creates a pipe. Returns pair of file descriptors (r, w) [Not on Windows].
popen(command, mode='r', bufSize=0) Opens a pipe to or from command. Result is a file object to read to or write from, as indicated by mode being 'r' or 'w'. Use it to catch a command output ('r' mode), or to feed it ('w' mode).
remove(path) See unlink.
rename(old, new) Renames/moves the file or directory old to new. [error if target name already exists]
renames(old, new) Recursive directory or file renaming function. Works like rename(), except creation of any intermediate directories needed to make the new pathname good is attempted first. After the rename, directories corresponding to rightmost path segments of the old name will be pruned away using removedirs().
rmdir(path) Removes the empty directory path
read(fd, n) Reads n bytes from file descriptor fd and return as string.
stat(path) Returns st_mode, st_ino, st_dev, st_nlink, st_uid,st_gid, st_size, st_atime, st_mtime, st_ctime. [st_ino, st_uid, st_gid are dummy on Windows]
system(command) Executes string command in a subshell. Returns exit status of subshell (usually 0 means OK). Since 2.4 use subprocess.call() instead.
times() Returns accumulated CPU times in sec (user, system, children's user, children's sys, elapsed real time) [3 last not on Windows].
unlink(path) Unlinks ("deletes") the file (not dir!) path. Same as: remove.
utime(path, (aTime, mTime)) Sets the access & modified time of the file to the given tuple of values.
wait() Waits for child process completion. Returns tuple of pid, exit_status [Not on Windows].
waitpid(pid, options) Waits for process pid to complete. Returns tuple of pid, exit_status [Not on Windows].
walk(top[, topdown=True [, onerror=None]]) Generates a list of file names in a directory tree, by walking the tree either top down or bottom up. For each directory in the tree rooted at directory top (including top itself), it yields a 3-tuple (dirpath, dirnames, filenames) - more info here. See also os.path.walk().
write(fd, str) Writes str to file fd. Returns nb of bytes written.

posixpath

Posix pathname operations.
Do not import this module directly, import os instead and refer to this module as os.path. (e.g. os.path.exists(p))!

Some posixpath functions
Function Result
abspath(p) Returns absolute path for path p, taking current working dir in account.
commonprefix(list) Returns the longuest path prefix (taken character-by-character) that is a prefix of all paths in list (or '' if list empty).
dirname/basename(p) directory and name parts of the path p. See also split.
exists(p) True if string p is an existing path (file or directory). See also lexists.
expanduser(p) Returns string that is (a copy of) p with "~" expansion done.
expandvars(p) Returns string that is (a copy of) p with environment vars expanded. [Windows: case significant; must use Unix: $var notation, not %var%]
getmtime(filepath) Returns last modification time of filepath (integer nb of seconds since epoch).
getatime(filepath) Returns last access time of filepath (integer nb of seconds since epoch).
getsize(filepath) Returns the size in bytes of filepath. os.error if file inexistent or inaccessible.
isabs(p) True if string p is an absolute path.
isdir(p) True if string p is a directory.
islink(p) True if string p is a symbolic link.
ismount(p) True if string p is a mount point [true for all dirs on Windows].
join(p[,q[,...]]) Joins one or more path components in a way suitable for the current OS.
lexists(path) True if the file specified by path exists, whether or not it's a symbolic link (unlike exists).
split(p) Splits p into (head, tail) where tail is last pathname component and head is everything leading up to that. <=> (dirname(p), basename(p))
splitdrive(p) Splits path p in a pair ('drive:', tail) [Windows]
splitext(p) Splits into (root, ext) where last comp of root contains no periods and ext is empty or starts with a period.
walk(p, visit, arg) Calls the function visit with arguments (arg, dirname, names) for each directory recursively in the directory tree rooted at p (including p itself if it's a dir). The argument dirname specifies the visited directory, the argument names lists the files in the directory. The visit function may modify names to influence the set of directories visited below dirname, e.g. to avoid visiting certain parts of the tree. See also os.walk() for an alternative.

shutil

高水準なファイル操作 (コピー, 削除)。 [Full doc]

Main shutil functions
Function Result
copy(src, dest) file src の内容を ファイル dest にコピーする。 ファイルの許可属性も保持する。
copytree(src, dest[, symlinks]) ディレクトリ src 以下を ディレクトリ dest へ再帰的にコピーする (コピー前に dest は存在しないものとする)。 symlinks が 真 の場合、 src のリンク は dest でも同様に維持される。
move(src, dest) ファイルもしくはディレクトリを新しい位置へ再帰的に移動する。
rmtree(path[, ignore_errors[, onerror]]) ディレクトリツリーを完全に削除する。 ignore_errors が真の場合、エラーを 無視する か、 onerror(func, path, sys.exc_info()) が提供されていれば 引数 func (faulty function) と path (concerned file) を設定してコールする。
(copyfile, copymode, copystat, copy2 も見よ。)

time

日付と時刻の取得や変換を行う。 [詳細]
(より洗練された日付/時刻の取り扱いを求めるのであれば、モジュール mxDateTime も見よ。)

変数
Variable Meaning
altzone ローカルのサマータイムのオフセットを正午子午線からの西方向への符号付きの秒数であらわす。
daylight サマータイムが指定されている場合、非ゼロがセットされている。
timezone ローカル・タイムゾーン(非サマータイム)のオフセット、UTCから西向きの秒数。
tzname タプル (local non-DST timezone の名前, local DST timezone の名前).
関数
関数名 結果
clock() On Unix: 現在のプロセッサー・タイムを浮動小数点数を用いた秒であらわす。
On Windows: この関数を最初に呼んでからの経過秒数を浮動小数点数であらわす。 (精度 < 1µs).
time() UTC time を epoch からの 経過 秒数 として float型 で返す。
gmtime([secs]),
localtime([secs])
Returns 時間を表現する9要素のタプルを返す。 secs が与えられなかった場合は、現在の時刻を使用する。
2.2 より、 以下のような属性をもつstruct_time オブジェクトを返す (以前のようにタプルとしてアクセスすることも可能である):
インデックス属性
0 tm_year 年 (e.g. 1993)
1 tm_mon 月 [1,12]
2 tm_mday 日 [1,31]
3 tm_hour 時 [0,23]
4 tm_min 分 [0,59]
5 tm_sec 秒 [0,61]; 61 は うるう秒 と (非常にまれな) 二倍うるう秒 の為に設けてある。
6 tm_wday 週日数 [0,6], Monday is 0
7 tm_yday ユリウス暦日数 [1,366]
8 tm_isdst 昼夜フラグ: 0, 1 または -1; -1 は mktime() に渡され、通常は動作する
asctime([timeTuple]), 'Mon Apr 03 08:31:14 2006' という形式の 24 字の文字列。 secs が与えられない場合、現在時刻を使用する。
ctime([secs]) asctime(localtime(secs)) と等価
mktime(timeTuple) localtime() の逆動作。 秒数を float 表現で返す。
strftime(format[, timeTuple]) 時刻のタプルを、format(下記参照)に則して文字列に フォーマット する。 secs が与えられない場合、現在時刻を使用する。
strptime(string[, format]) formatstrftime() と同記法。下記参照) に則した時刻を表す文字列をパースし、 時刻のタプル struct_time を返す。 format のデフォルトは、asctime のフォーマットと同じく、"%a %b %d %H:%M:%S %Y" 。
sleep(secs) 実行を secs 秒間停止する。 secs は float でもよい。

Formatting in strftime() and strptime()
Directive Meaning
%a ロケールにおける省略形の曜日名
%A ロケールにおける完全な形の曜日名
%b ロケールにおける省略形の月名
%B ロケールにおける完全な形の月名
%c ロケールにおける日付と時刻の適切な表現
%d 日 の 10 進数 [01,31] による表現
%H 時 (24 時間制) の 10 進数 [00,23] による表現
%I 時 (12 時間制) の 10 進数 [01,12] による表現
%j 1 年の経過日数の 10 進数 [001,366] による表現
%m 月 の 10 進数 [01,12] による表現
%M 分 の 10 進数 [00,59] による表現
%p ロケールにおける AM と PM に相当する表現
%S 秒 の 10 進数 [00,61] による表現。 61 もアリ!
%U 1 年の週番号 (日曜を週の開始とする) の 10 進数 [00,53] による表現。 年の最初の日曜日に先行するすべての曜日は 0 週目 となる
%w 曜日 の 10 進数 [0(日曜),6] による表現
%W 1 年の週番号 (月曜を週の開始とする) の 10 進数 [00,53] による表現。 年の最初の日曜日に先行するすべての曜日は 0 週目 となる
%x ロケールにおける適切な日付の表現
%X ロケールにおける適切な時刻の表現
%y 西暦年 の下位 2 桁の 10 進数 [00,99] による表現
%Y 西暦年 の 10 進数 [00,99] による表現
%Z タイムゾーンの名前 (タイムゾーンが設定されていない場合には空文字列)
%% 文字リテラル "%" 自体の表現

string

一般的な文字列操作。 [詳細]
Python 2.0 以降、string モジュールによって提供されていた多くの(全てではないが)関数は撤廃され、 組み込みの string メソッドに変更された。 詳細は 文字列の操作 を見よ。

string 変数
変数 意味
digits 文字列 '0123456789'
hexdigits, octdigits 正統的な (Legal) 16進数 と 8進数 の数すべてを含む文字列
letters, uppercase, lowercase, whitespace それぞれ、大文字+小文字、大文字、小文字、空白文字すべてを含む文字列
ascii_letters, ascii_lowercase, ascii_uppercase 上記と同じだが、現在の ロケール を考慮する
index_error index() で部分文字列が見つからなかった場合に送出される例外
string 関数
関数 結果
expandtabs(s, tabSize) 文字列 s のコピーを、タブ展開して返す
find/rfind(s, sub[, start=0[, end=0]) subs[start:end] に完全に含まれている場合、文字列 s から、部分文字列 sub が見つかった最低/最高 のインデックスを返す。 sub が見つからなかった場合 -1 を返す
ljust/rjust/center(s, width[, fillChar=' ']) 文字列 s のコピーを返す。与えられた幅の領域内で 左/右に寄せる、もしくは中央にそろえ、 残りの部分は空白もしくは指定された文字で埋める。s の切り捨てはしない
lower/upper(s) 文字列 s (のコピー) を 大文字化/小文字化 して返す
split(s[, sep=whitespace[, maxsplit=0]]) 文字列 s に含まれる単語をリストとして返す。単語の区切り文字に sep を使用する
rsplit(s[, sep=whitespace[, maxsplit=0]]) split と同じだが、文字列の末尾から区切り処理を開始する。例えば、 'A,B,C'.split(',', 1) == ['A', 'B,C'] に対して 'A,B,C'.rsplit(',', 1) == ['A,B', 'C'] となる
join(words[, sep=' ']) リストやタプルからなる単語を、指定したキャラクタを間にはさんで結合する。 split の逆
replace(s, old, new[, maxsplit=0] すべての oldnew に置き換えて、文字列 s のコピーを返す。maxsplit で置き換え回数を制限する
strip(s[, chars=None]) 文字列 s (のコピー)から、先頭と末尾の chars を除去して返す。 (default: whitespace). Also: lstrip, rstrip.

re (sre)

正規表現演算。 [詳細]

ユニコード文字列を対象とする。モジュール sre として新しく実装されている。re は互換性のためにフロントエンドとして残された。
正規表現のパターンは文字列で指定する。バックスラッシュをその文字どおりに解釈させるため、 raw 文字列を使うと良いだろう (例、r'\w*')

正規表現の構文
形式 説明
. すべての文字 (DOTALL フラグ設定時は空白にも) にマッチ
^ 文字列の始端 (MULTILINE モードでは各行の始め) にマッチ
$ 文字列の終端 (MULTILINE モードでは各行の終わり) にマッチ
* 直前の表現の 0 回以上の(可能な限りの)繰り返し
+ 直前の表現の 1 回以上の(可能な限りの)繰り返し
? 直前の表現が 0 回 または 1 回現れる
*?, +?, ?? *, + と ? と同様だが、できるだけ 少ない 回数だけマッチする
{m,n} 直前の表現の m 回以上の n 回以下の(可能な限りの)繰り返し
{m,n}? 上と同様だが、できるだけ 少ない 回数だけ繰り返す
[ ] 文字セットを定義する。例えば、'[a-zA-Z]' はすべての英数字にマッチする (\w \S も見よ)
[^ ] 相補文字セット-記述していない文字にマッチするようなセット-を定義する
\ 特殊文字 '*?+&$|()' をエスケープする。または、特殊シーケンスを表す(下記参照)。 Python の文字列では、パターン文字列中に、'\\' または r'\' として記述する。
\\ 文字 '\' にマッチする。Python の文字列では、パターン文字列中に、'\\\\' または r'\\' として記述する。
| 選択肢を表す。 'foo|bar' は 'foo' または 'bar' にマッチする
(...) () 内の正規表現にマッチし、グループ を形成する
(?:...) 上と同様だが、グループ を形成しない (値をキャプチャしない)
(?P<name>...) () 内の正規表現にマッチし、名前付きグループ を形成する (例、 r'(?P<id>[a-zA-Z_]\w*)' は id という名のグループを形成する)
(?P=name) name という名のグループに先立ってマッチしたテキストとマッチする
(?=...) パターン ... にマッチした直後の文字列とマッチする。ただし、文字列を一切破壊しない。例えば、 'Isaac (?=Asimov)' というパターンは 'Asimov' の直後にある 'Isaac' とだけマッチする。
(?!...) パターン ... に マッチしなかった場合、直後の文字列とマッチする。 (?=...) を逆にしたもの。
(?<=...) もし文字列内の現在位置の前に、現在位置で終わる ... とのマッチがあれば、マッチする。 これは 肯定後読みアサーション(positive lookbehind assertion) と呼ばれる。
(?<!...) もし文字列内の現在位置の前に ...とのマッチがないならば、マッチする。 これは 否定後読みアサーション(negative lookbehind assertion)と呼ばれる。
(?(group)A|B) [2.4+] group(?Pgroup...) で定義された グループIDの数値 もしくは グループ名 である。 もし特定のグループとマッチした場合、正規表現パターン A が文字列に対して適用される。 もしグループとマッチしなかった場合は、代わりにパターン B が適用される。
(?#...) コメント。無視される。
(?letters) letters とは一つか複数の文字 'i','L', 'm', 's', 'u', 'x' である。 正規表現全体に対応する フラグ (re.I, re.L, re.M, re.S, re.U, re.X) をセットする。フラグについては compile() を見よ。
特殊文字
文字 説明
\number 同じ番号をもつ group の内容とマッチする。 グループ番号は 1 から始まる。
\A 文字列の開始位置のみにマッチする。
\b word の先頭もしくは末尾にある空白文字: 例えば、'\bis\b' は 'is' とマッチするが、 'his' にはマッチしない。
\B 単語の末尾と先頭 以外に位置する 空白文字。
\d 数字 (<=> [0-9])。
\D 数字以外の文字 (<=> [^0-9])。
\s 空白文字 (<=> [ \t\n\r\f\v])。
\S 空白文字以外の文字 (<=> [^ \t\n\r\f\v])。
\w アルファベットと数字 (LOCALE フラグに依存する)。
\W アルファベットと数字 以外の文字 (LOCALE フラグに依存する)。
\Z 文字列の末尾のみにマッチする。
変数
変数 意味
error パターン文字列が正しい正規表現でなかった事を示す例外。
関数
関数 結果
compile(pattern[,flags=0]) 正規表現パターン文字列を regular expression object にコンパイルする。
フラグ ( | で結合可能):
I or IGNORECASE <=> (?i)
マッチングの際に大小文字を無視する
L or LOCALE <=> (?L)
\w, \W, \b, \B を現在のロケールに依存させる
M or MULTILINE <=> (?m)
文字列全体の開始/末尾だけでなく、すべての改行にマッチさせる
S or DOTALL <=> (?s)
'.' を改行を含むすべての文字列にマッチさせる
U or UNICODE <=> (?u)
\w, \W, \b, と \B を Unicode 文字プロパティ・データベースに依存させる
X or VERBOSE <=> (?x)
文字セットの外側にある空白文字を無視する
escape(string) 全ての非アルファベット文字にバックスラッシュを付けて string (のコピー)を返す。
match(pattern, string[, flags]) string先頭 で 0 か 複数 の文字列が正規表現パターンとマッチした場合、 対応する MatchObject インスタンスを返す。 または、マッチしなかった場合 None を返す。
search(pattern, string[, flags]) string から pattern とマッチする位置を探し、対応する MatchObject インスタンスを返す。マッチしなかった場合、 None を返す。
split(pattern, string[, maxsplit=0]) pattern を単位として string を区切る。 もし、パターンの内部で () が使われていた場合は、 出現したパターン または サブ・パターンも返される。
findall(pattern, string) pattern の重複していないマッチ部分のリストを返す。パターンが 2つ以上のグループを持つ場合は、 グループのリストかタプルのリストを返す。
sub(pattern, repl, string[, count=0]) string 内で、 pattern (文字列もしくは正規表現オブジェクト) と重複しないマッチの内、 一番左(count の最初)にあるものを 置換 repl で置換して得られた文字列を返す。 repl には文字列か関数をとることができる。関数は単一の MatchObj 引数で呼び出されたものであり、必ず置き換え文字列を返す。
subn(pattern, repl, string[, count=0]) sub() と同じ。ただし、 タプル (newString, numberOfSubsMade) を返す。

正規表現オブジェクト

正規表現オブジェクト(RE objects)は compile 関数によって返される。

re object attributes
Attribute Description
flags Flags arg used when RE obj was compiled, or 0 if none provided.
groupindex マッチング・パターン を {group name: group number} の辞書形式で記述したもの.
pattern RE オブジェクトをコンパイルした際のパターン文字列.
re object methods
Method Result
match(string[, pos][, endpos]) この正規表現でゼロもしくはそれより多くの文字が文字列の先頭でマッチした場合、 対応する MatchObject インスタンスを返す。もし文字列がパターンとマッチしない場合は None を返す。 この動作はゼロ長一致(zero-length match)とは異なるので注意すること。
第二引数 pos はオプション引数である。 pos には検索開始位置として文字列中のインデックスを指定する。 デフォルトは 0 である。この指定方法は文字列のスライス表記と完全には等しくない。パターン文字列 '' (2個のシングル・クオート) は文字列の実際の先頭と改行の直後にマッチするが、文字列検索の開始位置では必要ない。
オプション引数 endpos で文字列検索の範囲を制限できる; endpos 指定により検索対象である文字列の長さが endpos であるかのように振舞う。したがって、 pos から endpos の範囲の文字だけがマッチングの対象となる。
search(string[, pos][, endpos]) 文字列を走査して、この正規表現と一致する位置を探し、対応する MatchObject インスタンスを返す。パターンが文字列のどこにも一致しなかった場合は None を返す。 この動作はゼロ長一致(zero-length match)を検索する事とは異なる。
オプション引数 posendpos の使用方法は match() と同じ。
split(string[, maxsplit=0]) split() 関数と同じだが、パターンをコンパイルして使用する。
findall(string) findall() 関数と同じだが、パターンをコンパイルして使用する。
sub(repl, string[, count=0]) sub() 関数と同じだが、パターンをコンパイルして使用する。
subn(repl, string[, count=0]) subn() 関数と同じだが、パターンをコンパイルして使用する。

マッチオブジェクト

マッチオブジェクト (MatchObject) は match 関数 と search 関数によって返される。

マッチオブジェクトの属性
属性 説明
pos pos の値は search または match 関数に渡される。正規表現(RE)エンジンは pos で指定された位置から文字列検索を開始する。
endpos endpos の値は search または match 関数に渡される。正規表現エンジンは endpos で指定された位置で文字列検索を終了する。
re MatchObj インスタンスを生成した match または search 関数の正規表現オブジェクト。
string match() または search() に渡された文字列。
マッチオブジェクトの関数
関数 結果
group([g1, g2, ...]) マッチしたグループを1つかそれより多く返す。 引数が1つである場合、返り値は文字列である。引数が複数の場合、返り値は引数ごとに要素1個を持つタプルである。gi にゼロを指定した場合、マッチした文字列全体を返す。もし1 <= gi <= 99 ならば、マッチしたグループ #gi の文字列 (または、グループがない場合には None) を返す。gi にグループの名前を指定してもよい。
groups() 全グループのマッチ文字列をタプルで返す。 マッチしなかったグループの値は None になる。 len(tuple)== 1 の場合、返り値はタプルではなく文字列である。
start(group), end(group) group がマッチした部分文字列の開始位置と終了位置を返す。 (または、グループは存在するがマッチしていない場合は None を返す)
span(group) 要素2つのタプル (start(group), end(group)) を返す。 グループがマッチしていなかった場合 (None, None) を返す。

math

著しく複雑な計算をおこなう際は、Numerical PythonPython and Scientific computing のページも見よ。 [詳細]

定数
名前
pi 3.1415926535897931
e 2.7182818284590451
関数
名前 結果
acos(x) x(ラジアン単位)のアークコサインを返す
asin(x) x(ラジアン単位)のアークサインを返す
atan(x) x(ラジアン単位)のアークタンジェントを返す
atan2(y, x) y/x(ラジアン単位)のアークタンジェントを返す。関数の返す値域は -pi から pi の間である。 atan(y/x) とは異なり、xy 両方の符号を考慮する
ceil(x) x の天井値 (ceil)、すなわち x 以上の最も小さい整数を float 型で返す
cos(x) x(ラジアン単位)のコサインを返す
cosh(x) x の双曲線コサインを返す
degrees(x) x をラジアン単位から度数単位に変換する
exp(x) ex 乗を返す (e ** x)
fabs(x) x の絶対値を float 型で返す
floor(x) x の床値 (floor)、すなわち x 以下の最も大きい整数を float 型で返す
fmod(x, y) 〔プラットフォームの C ライブラリで定義されている〕fmod(x, y) を返す。 プラットフォームに依存するので、x % y とは結果が異なる場合がある
frexp(x) x の仮数と指数を (m, e) のペアとして返す。m は float 型、 e は int 型であり、 式で表すと x = m * 2.**e となる。 x が 0 ならば m と e は共に 0 である。 それ以外の場合 0.5 <= abs(m) < 1.0 となる
hypot(x, y) ユークリッド距離 sqrt(x*x + y*y) を返す
ldexp(x, i) x * (2**i)
log(x[, base]) base を底とした x の対数を返す。 base を指定しないと、(e を底とした) x の自然対数を返す
log10(x) 10 を底とした x の対数を返す
modf(x) x の小数部分と整数部分を返す。 小数部分と整数部分の両方に x の符号が引き継がれる。 整数部分も float 型で返す
pow(x, y) x**y (yx 乗)を返す。 y=2 である場合は x*x を使用する方がより効率的である
radians(x) x を度数単位からラジアン単位に変換する
sin(x) x(ラジアン単位)のサインを返す
sinh(x) x の双曲線サインを返す
sqrt(x) x の平方根を返す
tan(x) x(ラジアン単位)のタンジェントを返す
tanh(x) x の双曲線タンジェントを返す

getopt

コマンドライン オプションのパーサ。 [詳細]

Python 2.3 までは getopt が標準のパーサであった。 現在は optparse が標準のパーサである。
[Richard Gruet によるシンプルなパーサ getargs.py も見よ (アサマシな自己宣伝)]

Functions:
getopt(list, optstr)    -- C言語に類似. <optstr> は探索用のオプション文字列
                               引数を取るオプション文字の後には ':' を付ける。例、
    # "python test.py -c hi -a arg1 arg2" のように呼び出す
       opts, args =  getopt.getopt(sys.argv[1:], 'ab:c:')
    # opts は、
       [('-c', 'hi'), ('-a', '')]
    # args は、
       ['arg1', 'arg2']

List of modules and packages in base distribution

Built-ins and content of python Lib directory. The subdirectory Lib/site-packages contains platform-specific packages and modules.
[Python NT distribution, may be slightly different in other distributions]

Standard library modules
Operation Result
aifc Stuff to parse AIFF-C and AIFF files.
anydbm Generic interface to all dbm clones. (dbhash, gdbm, dbm, dumbdbm).
asynchat A class supporting chat-style (command/response) protocols.
asyncore Basic infrastructure for asynchronous socket service clients and servers.
atexit Register functions to be called at exit of Python interpreter.
audiodev Classes for manipulating audio devices (currently only for Sun and SGI).
base64 Conversions to/from base64 transport encoding as per RFC-1521.
BaseHTTPServer HTTP server base class
Bastion "Bastionification" utility (control access to instance vars).
bdb A generic Python debugger base class.
bsddb (Optional) improved BSD database interface [package].
binhex Macintosh binhex compression/decompression.
bisect Bisection algorithms.
bz2 BZ2 compression.
calendar Calendar printing functions.
cgi Wraps the WWW Forms Common Gateway Interface (CGI).
CGIHTTPServer CGI-savvy HTTP Server.
cmd A generic class to build line-oriented command interpreters.
cmp Efficiently compare files, boolean outcome only.
cmpcache Same, but caches 'stat' results for speed.
code Utilities needed to emulate Python's interactive interpreter.
codecs Lookup existing Unicode encodings and register new ones.
codeop Utilities to compile possibly incomplete Python source code.
collections high-performance container datatypes. Currently, the only datatype is a double-ended queue.
colorsys Conversion functions between RGB and other color systems.
commands Execute shell commands via os.popen [Unix only].
compileall Force "compilation" of all .py files in a directory.
ConfigParser Configuration file parser (much like windows .ini files).
Cookie HTTP state (cookies) management.
copy Generic shallow and deep copying operations.
copy_reg Helper to provide extensibility for modules pickle/cPickle.
csv Tools to read comma-separated files (of variations thereof).
datetime Improved date/time types (date, time, datetime, timedelta).
dbhash (g)dbm-compatible interface to bsdhash.hashopen.
decimal Decimal floating point arithmetic.
difflib Tool for comparing sequences, and computing the changes required to convert one into another.
dircache Sorted list of files in a dir, using a cache.
dircmp Defines a class to build directory diff tools on.
dis Bytecode disassembler.
distutils Package installation system.
distutils.command.register Registers a module in the Python package index (PyPI). This command plugin adds the register command to distutil scripts.
distutils.debug  
distutils.emxccompiler  
distutils.log  
doctest Unit testing framework based on running examples embedded in docstrings.
DocXMLRPCServer Creation of self-documenting XML-RPC servers, using pydoc to create HTML API doc on the fly.
dospath Common operations on DOS pathnames.
dumbdbm A dumb and slow but simple dbm clone.
dump Print python code that reconstructs a variable.
dummy_thread  
dummy_threading Helpers to make it easier to write code that uses threads where supported, but still runs on Python versions without thread support. The dummy modules simply run the threads sequentially.
email A package for parsing, handling, and generating email messages. New version 3.0 dropped various deprecated APIs and removes support for Python versions earlier than 2.3.
encodings New codecs: idna (IDNA strings), koi8_u (Ukranian), palmos (PalmOS 3.5), punycode (Punycode IDNA codec), string_escape (Python string escape codec: replaces non-printable chars w/ Python-style string escapes). New codecs in 2.4: HP Roman8, ISO_8859-11, ISO_8859-16, PCTP-154, TIS-620; Chinese, Japanese and Korean codecs.
exceptions Class based built-in exception hierarchy.
filecmp File and directory comparison.
fileinput Helper class to quickly write a loop over all standard input files.
find Find files directory hierarchy matching a pattern.
fnmatch Filename matching with shell patterns.
formatter Generic output formatting.
fpformat General floating point formatting functions.
ftplib An FTP client class. Based on RFC 959.
gc Perform garbage collection, obtain GC debug stats, and tune GC parameters.
getopt Standard command line processing. See also optparse.
getpass Utilities to get a password and/or the current user name.
gettext Internationalization and localization support.
glob Filename "globbing" utility.
gopherlib Gopher protocol client interface.
grep 'grep' utilities.
gzip Read & write gzipped files.
heapq Heap queue (priority queue) helpers.
hmac HMAC (Keyed-Hashing for Message Authentication).
hotshot.stones Helper to run the pystone benchmark under the Hotshot profiler.
htmlentitydefs HTML character entity references.
htmllib HTML2 parsing utilities
HTMLParser Simple HTML and XHTML parser.
httplib HTTP1 client class.
idlelib (package) Support library for the IDLE development environment.
ihooks Hooks into the "import" mechanism.
imaplib IMAP4 client.Based on RFC 2060.
imghdr Recognizing image files based on their first few bytes.
imputil Provides a way of writing customized import hooks.
inspect Get information about live Python objects.
itertools Tools to work with iterators and lazy sequences.
keyword List of Python keywords.
knee A Python re-implementation of hierarchical module import.
linecache Cache lines from files.
linuxaudiodev Linux /dev/audio support. Replaced by ossaudiodev(Linux).
locale Support for number formatting using the current locale settings.
logging (package) Tools for structured logging in log4j style.
macpath Pathname (or related) operations for the Macintosh [Mac].
macurl2path Mac specific module for conversion between pathnames and URLs [Mac].
mailbox Classes to handle Unix style, MMDF style, and MH style mailboxes.
mailcap Mailcap file handling (RFC 1524).
marshal Internal Python object serialization.
markupbase Shared support for scanning document type declarations in HTML and XHTML.
mhlib MH (mailbox) interface.
mimetools Various tools used by MIME-reading or MIME-writing programs.
mimetypes Guess the MIME type of a file.
MimeWriter Generic MIME writer. Deprecated since release 2.3. Use the email package instead.
mimify Mimification and unmimification of mail messages.
mmap Interface to memory-mapped files - they behave like mutable strings.
modulefinder Tools to find what modules a given Python program uses, without actually running the program.
multifile A readline()-style interface to the parts of a multipart message.
mutex Mutual exclusion -- for use with module sched. See also std module threading, and glock.
netrc Parses and encapsulates the netrc file format.
nntplib An NNTP client class. Based on RFC 977.
ntpath Common operations on Windows pathnames.
nturl2path Convert a NT pathname to a file URL and vice versa.
olddifflib Old version of difflib (helpers for computing deltas between objects)?
operator Standard operators as functions
optparse Improved command-line option parsing library (see also getopt).
os OS routines for Mac, DOS, NT, or Posix depending on what system we're on.
os2emxpath os.path support for OS/2 EMX.
packmail Create a self-unpacking shell archive.
pdb A Python debugger.
pickle Pickling (save and restore) of Python objects (a faster C implementation exists in built-in module: cPickle).
pickletools Tools to analyze and disassemble pickles.
pipes Conversion pipeline templates.
pkgutil Tools to extend the module search path for a given package.
platform Get info about the underlying platform.
poly Polynomials.
popen2 Spawn a command with pipes to its stdin, stdout, and optionally stderr. Superseded by module subprocess since 2.4
poplib A POP3 client class.
posixfile Extended file operations available in POSIX.
posixpath Common operations on POSIX pathnames.
pprint Support to pretty-print lists, tuples, & dictionaries recursively.
pre Support for regular expressions (RE) - see re.
profile Class for profiling python code.
pstats Class for printing reports on profiled python code.
pty Pseudo terminal utilities.
py_compile Routine to "compile" a .py file to a .pyc file.
pyclbr Parse a Python file and retrieve classes and methods.
pydoc Generate Python documentation in HTML or text for interactive use.
pyexpat Interface to the Expat XML parser.
PyUnit Unit test framework inspired by JUnit. See unittest.
Queue A multi-producer, multi-consumer queue.
quopri Conversions to/from quoted-printable transport encoding as per RFC 1521.
rand Don't use unless you want compatibility with C's rand().
random Random variable generators.
re Regular Expressions.
readline GNU readline interface [Unix].
reconvert Convert old ("regex") regular expressions to new syntax ("re").
regex_syntax Flags for regex.set_syntax().
regexp Backward compatibility for module "regexp" using "regex".
regsub Regexp-based split and replace using the obsolete regex module.
repr Redo repr() but with limits on most sizes.
rexec Restricted execution facilities ("safe" exec, eval, etc).
rfc822 Parse RFC-8222 mail headers.
rlcompleter Word completion for GNU readline 2.0.
robotparser Parse robot.txt files, useful for web spiders.
sched A generally useful event scheduler class.
sets A Set datatype implementation based on dictionaries (see Sets).
sgmllib A parser for SGML, using the derived class as a static DTD.
shelve Manage shelves of pickled objects.
shlex Lexical analyzer class for simple shell-like syntaxes.
shutil Utility functions for copying files and directory trees.
SimpleHTTPServer Simple HTTP Server.
SimpleXMLRPCServer Simple XML-RPC Server
site Append module search paths for third-party packages to sys.path.
smtpd An RFC 2821 smtp proxy.
smtplib SMTP/ESMTP client class.
sndhdr Several routines that help recognizing sound.
socket Socket operations and some related functions. Now supports timeouts thru function settimeout(t). Also supports SSL on Windows.
SocketServer Generic socket server classes.
sre Support for regular expressions (RE). See re.
stat Constants/functions for interpreting results of os.
statcache Maintain a cache of stat() information on files.
statvfs Constants for interpreting statvfs struct as returned by os.statvfs() and os.fstatvfs() (if they exist).
string A collection of string operations (see Strings).
stringprep Normalization and manipulation of Unicode strings.
StringIO File-like objects that read/write a string buffer (a faster C implementation exists in built-in module: cStringIO).
subprocess Subprocess management. Replacement for os.system, os.spawn*, os.popen*, popen2.* [PEP324]
sunau Stuff to parse Sun and NeXT audio files.
sunaudio Interpret sun audio headers.
symbol Non-terminal symbols of Python grammar (from "graminit.h").
symtable Interface to the compiler's internal symbol tables.
tabnanny Check Python source for ambiguous indentation.
tarfile Tools to read and create TAR archives.
telnetlib TELNET client class. Based on RFC 854.
tempfile Temporary files and filenames.
textwrap Tools to wrap paragraphs of text.
threading Proposed new threading module, emulating a subset of Java's threading model.
threading_api (doc of the threading module).
timeit Benchmark tool.
toaiff Convert "arbitrary" sound files to AIFF (Apple and SGI's audio format).
token Token constants (from "token.h").
tokenize Tokenizer for Python source.
traceback Extract, format and print information about Python stack traces.
trace Tools to trace execution of a function or program.
tty Terminal utilities [Unix].
turtle LogoMation-like turtle graphics.
types Define names for all type symbols in the std interpreter.
tzparse Parse a timezone specification.
unicodedata Interface to unicode properties.
unittest Python unit testing framework, based on Erich Gamma's and Kent Beck's JUnit.
urllib Open an arbitrary URL.
urllib2 An extensible library for opening URLs using a variety of protocols.
urlparse Parse (absolute and relative) URLs.
user Hook to allow user-specified customization code to run.
UserDict A wrapper to allow subclassing of built-in dict class (useless with new-style classes. Since Python 2.2, dict is subclassable).
UserList A wrapper to allow subclassing of built-in list class (useless with new-style classes. Since Python 2.2, list is subclassable)
UserString A wrapper to allow subclassing of built-in string class (useless with new-style classes. Since Python 2.2, str is subclassable).
util some useful functions that don't fit elsewhere !!
uu Implementation of the UUencode and UUdecode functions.
warnings Python part of the warnings subsystem. Issue warnings, and filter unwanted warnings.
wave Stuff to parse WAVE files.
weakref Weak reference support for Python. Also allows the creation of proxy objects.
webbrowser Platform independent URL launcher.
whatsound Several routines that help recognizing sound files.
whichdb Guess which db package to use to open a db file.
whrandom Wichmann-Hill random number generator (obsolete, use random instead).
xdrlib Implements (a subset of) Sun XDR (eXternal Data Representation).
xmllib A parser for XML, using the derived class as static DTD.
xml.dom Classes for processing XML using the DOM (Document Object Model). 2.3: New modules expatbuilder, minicompat, NodeFilter, xmlbuilder.
xml.sax Classes for processing XML using the SAX API.
xmlrpclib An XML-RPC client interface for Python.
xreadlines Provides a sequence-like object for reading a file line-by-line without reading the entire file into memory. Deprecated since release 2.3. Use for line in file instead. Removed since 2.4
zipfile Read & write PK zipped files.
zipimport ZIP archive importer.
zmod Demonstration of abstruse mathematical concepts.

Workspace exploration and idiom hints

dir(object)list valid attributes of object (which can be a module, type or class object)
dir()list names in current local symbol table.
if __name__ == '__main__':
    main()
invoke main() if running as script
map(None, lst1, lst2, ...)merge lists; see also zip(lst1, lst2, ...)
b = a[:]create a copy b of sequence a
b = list(a)If a is a list, create a copy of it.
a,b,c = 1,2,3Multiple assignment, same as a=1; b=2; c=3
for key, value in dic.items(): ...Works also in this context
if 1 < x <= 5: ... Works as expected
for line in fileinput.input(): ...Process each file in command line args, one line at a time
_(underscore) in interactive mode, refers to the last value printed.

Python Mode for Emacs

Emacs goodies available here.
(The following has not been revised, probably not up to date - any contribution welcome -)


Type C-c ? when in python-mode for extensive help.
INDENTATION
Primarily for entering new code:
TAB indent line appropriately
LFD insert newline, then indent
DEL reduce indentation, or delete single character
Primarily for reindenting existing code:
C-c : guess py-indent-offset from file content; change locally
C-u C-c : ditto, but change globally
C-c TAB reindent region to match its context
C-c < shift region left by py-indent-offset
C-c > shift region right by py-indent-offset
MARKING & MANIPULATING REGIONS OF CODE
C-c C-b mark block of lines
M-C-h mark smallest enclosing def
C-u M-C-h mark smallest enclosing class
C-c # comment out region of code
C-u C-c # uncomment region of code
MOVING POINT
C-c C-p move to statement preceding point
C-c C-n move to statement following point
C-c C-u move up to start of current block
M-C-a move to start of def
C-u M-C-a move to start of class
M-C-e move to end of def
C-u M-C-e move to end of class
EXECUTING PYTHON CODE
C-c C-c sends the entire buffer to the Python interpreter
C-c | sends the current region
C-c ! starts a Python interpreter window; this will be used by
subsequent C-c C-c or C-c | commands
VARIABLES
py-indent-offset indentation increment
py-block-comment-prefix comment string used by py-comment-region
py-python-command shell command to invoke Python interpreter
py-scroll-process-buffer t means always scroll Python process buffer
py-temp-directory directory used for temp files (if needed)
py-beep-if-tab-change ring the bell if tab-width is changed