pytho****@googl*****
pytho****@googl*****
2011年 3月 9日 (水) 23:50:05 JST
8 new revisions: Revision: d8c565d731 Author: INADA Naoki <inada****@klab*****> Date: Mon Mar 7 07:51:48 2011 Log: レビュー: tutorial/whatnow.rst http://code.google.com/p/python-doc-ja/source/detail?r=d8c565d731 Revision: d8098f9686 Author: INADA Naoki <inada****@klab*****> Date: Mon Mar 7 08:08:44 2011 Log: レビュー: tutorial/interactive.rst http://code.google.com/p/python-doc-ja/source/detail?r=d8098f9686 Revision: f905d79d0f Author: INADA Naoki <inada****@klab*****> Date: Mon Mar 7 08:27:48 2011 Log: レビュー: tutorial/floatingpoint.rst http://code.google.com/p/python-doc-ja/source/detail?r=f905d79d0f Revision: 0b2b9534a8 Author: INADA Naoki <inada****@klab*****> Date: Wed Mar 9 06:16:24 2011 Log: Update to 2.6.6: library/curses.rst http://code.google.com/p/python-doc-ja/source/detail?r=0b2b9534a8 Revision: 4512bd0963 Author: INADA Naoki <inada****@klab*****> Date: Wed Mar 9 06:17:54 2011 Log: Update to 2.6.6: library/codeop.rst http://code.google.com/p/python-doc-ja/source/detail?r=4512bd0963 Revision: 1b2cecd9b4 Author: INADA Naoki <inada****@klab*****> Date: Wed Mar 9 06:20:18 2011 Log: Update to 2.6.6: library/posixfile.rst http://code.google.com/p/python-doc-ja/source/detail?r=1b2cecd9b4 Revision: cd5ec8fd4b Author: INADA Naoki <inada****@klab*****> Date: Wed Mar 9 06:33:47 2011 Log: Update to 2.6.6: library/ftplib.rst http://code.google.com/p/python-doc-ja/source/detail?r=cd5ec8fd4b Revision: dd5e20cc04 Author: INADA Naoki <inada****@klab*****> Date: Wed Mar 9 06:44:57 2011 Log: Update to 2.6.6: library/undoc.rst http://code.google.com/p/python-doc-ja/source/detail?r=dd5e20cc04 ============================================================================== Revision: d8c565d731 Author: INADA Naoki <inada****@klab*****> Date: Mon Mar 7 07:51:48 2011 Log: レビュー: tutorial/whatnow.rst http://code.google.com/p/python-doc-ja/source/detail?r=d8c565d731 Modified: /tutorial/whatnow.rst ======================================= --- /tutorial/whatnow.rst Tue Nov 16 08:50:27 2010 +++ /tutorial/whatnow.rst Mon Mar 7 07:51:48 2011 @@ -4,24 +4,24 @@ さあ何を? ********** -このチュートリアルを読んだことで、おそらく Python を使ってみようという関心 はますます強くなったことでしょう --- 現実世界の問題を解決 -するために、Python を適用してみたくなったはずです。さて、それではどこで勉強 をしたらよいのでしょうか? - -.. % What Now? -.. % % Reading this tutorial has probably reinforced your interest in using -.. % % Python --- you should be eager to apply Python to solving your -.. % % real-world problems. Where should you go to learn more? - -このチュートリアルはPythonのドキュメンテーションセットの一部です。 セット の中の他のドキュメンテーションをいくつか紹介します: - -.. % % Some other documents in the set are: +このチュートリアルを読んだことで、おそらく Python を使ってみようという関心 は +ますます強くなったことでしょう --- 現実世界の問題を解決するために、Python +を適用してみたくなったはずです。 +さて、それではどこで勉強をしたらよいのでしょうか? + +このチュートリアルは Python のドキュメンテーションセットの一部です。 +セットの中の他のドキュメンテーションをいくつか紹介します。 * :ref:`library-index`: - このマニュアルをざっと眺めておくと便利です。このマニュアルは型、関数、標 準ライブラリのモジュールについての完全なリファレンスです。 - 標準的なPython配布物は *たくさんの* 追加コードを含んでいます。 Unix メー ルボックスの読み込み、HTTPによるドキュメント取得、 - 乱数の生成、コマンドラインオプションの構文解析、CGIプログラムの作成、デー タ圧縮やその他たくさんのタスクのためのモジュールがあります。 - ライブラリリファレンスをざっと見ることで、何が利用できるかのイメージをつ かむことができます。 + このマニュアルをざっと眺めておくと便利です。このマニュアルは型、関数、 + 標準ライブラリのモジュールについての完全なリファレンスです。 + 標準的なPython配布物は *たくさんの* 追加コードを含んでいます。 + Unix メールボックスの読み込み、HTTPによるドキュメント取得、乱数の生成、 + コマンドラインオプションの構文解析、CGIプログラムの作成、データ圧縮や + その他たくさんのタスクのためのモジュールがあります。 + ライブラリリファレンスをざっと見ることで、何が利用できるかのイメージを + つかむことができます。 * :ref:`install-index` は、他のPythonユーザによって書かれた外部モジュールを どうやってインストールするかを説明しています。 @@ -29,29 +29,38 @@ * :ref:`reference-index`: Pythonの文法とセマンティクスを詳しく説明していま す。 読むのは大変ですが、言語の完全なガイドとして有用です。 -More Python resources: - -* http://www.python.org: メインの Python Web サイト。このサイトには、コー ド、ドキュメント、そして Web - のあちこちの Python に関連したページへのポインタがあります。この Web サイ トは世界のあちこちのさまざまな場所、例えばヨーロッパ、 - 日本、オーストラリアなどでミラーされています。地理的な位置によっては、メ インのサイトよりミラーのほうが速いかもしれません。 +さらなる Python に関するリソース: + +* http://www.python.org: メインの Python Web サイト。このサイトには、コー ド、 + ドキュメント、そして Web のあちこちの Python に関連したページへのポインタ が + あります。この Web サイトは世界のあちこちのさまざまな場所、例えばヨーロッ パ、 + 日本、オーストラリアなどでミラーされています。地理的な位置によっては、 + メインのサイトよりミラーのほうが速いかもしれません。 * http://docs.python.org: Pythonドキュメントへの素早いアクセスを提供しま す。 -* http://pypi.python.org: Python パッケージインデックス、愛称はCheese Shopです。 - ユーザ作成のダウンロードできるPythonモジュール索引です。コードのリリース をしたら、ここに登録することで他の人が見つけられます。 - -* http://aspn.activestate.com/ASPN/Python/Cookbook/: Python - クックブックはコード例、モジュール、実用的なスクリプトの巨大なコレクショ ンです。主要なものは同名の本Python Cookbook (O'Reilly & - Associates, ISBN 0-596-00797-3.)に収録されています。 - -Python に関する質問をしたり、問題を報告するために、ニュースグルー プ :newsgroup:`comp.lang.python` に投稿したり、 -pyth****@pytho***** のメーリングリストに送信することができます。ニュース グループとメーリングリストは相互接続されて -いるので、どちらかにポストされたメッセージは自動的にもう一方にも転送されま す。一日に約 120 通程度、質問を -(そしてその解凍)、新機能の提案、新たなモジュールのアナウンスが投稿されてい ます。投稿する前に、必ず `よく出される質問 -<http://www.python.org/doc/faq/>`_ (Frequently Asked Questions, FAQ とも言 います) -のリストを確認するか、Python ソースコード配布物の :file:`Misc/` ディレクト リを探すようにしてください。メーリングリストのアーカイブは -http://mail.python.org/pipermail/ で入手することができます。 FAQ -では、何度も繰り返し現れる質問の多くに答えています。読者の抱えている問題に 対する解答がすでに入っているかもしれません。 +* http://pypi.python.org: Python パッケージインデックス、以前は Cheese Shop + という愛称でも呼ばれていました。これは、ユーザ作成のダウンロードできる + Python モジュールの索引です。コードのリリースをしたら、ここに登録すること で + 他の人が見つけられます。 + +* http://aspn.activestate.com/ASPN/Python/Cookbook/: Python クックブックは + コード例、モジュール、実用的なスクリプトの巨大なコレクションです。 + 主要なものは同名の本Python Cookbook (O'Reilly & Associates, + ISBN 0-596-00797-3.)に収録されています。 + +Python に関する質問をしたり、問題を報告するために、ニュースグループ +:newsgroup:`comp.lang.python` に投稿したり、 pytho****@pytho***** の +メーリングリストに送信することができます。ニュースグループとメーリングリス トは +相互接続されているので、どちらかにポストされたメッセージは自動的にもう一方 にも +転送されます。一日に約 120 通程度(ピーク時は数百通)の、質問(とその回答)、 +新機能の提案、新たなモジュールのアナウンスが投稿されています。投稿する前 に、 +必ず `よく出される質問 <http://www.python.org/doc/faq/>`_ (Frequently Asked +Questions, FAQ とも言います)のリストを確認するか、 Python ソースコード配布 物の +:file:`Misc/` ディレクトリを探すようにしてください。メーリングリストの +アーカイブは http://mail.python.org/pipermail/ で入手することができます。 +FAQ では、何度も繰り返し現れる質問の多くに答えています。読者の抱えている +問題に対する解答がすでに入っているかもしれません。 .. Postings figure based on average of last six months activity as reported by www.egroups.com; Jan. 2000 - June 2000: 21272 msgs / 182 ============================================================================== Revision: d8098f9686 Author: INADA Naoki <inada****@klab*****> Date: Mon Mar 7 08:08:44 2011 Log: レビュー: tutorial/interactive.rst http://code.google.com/p/python-doc-ja/source/detail?r=d8098f9686 Modified: /tutorial/interactive.rst ======================================= --- /tutorial/interactive.rst Wed Feb 16 02:08:37 2011 +++ /tutorial/interactive.rst Mon Mar 7 08:08:44 2011 @@ -4,31 +4,19 @@ 対話入力編集とヒストリ置換 ************************** -あるバージョンの Python インタプリタでは、Korn シェルや GNU Bash シェルに見 られる機能に似た、現在の入力行に対する編集機能や -ヒストリ置換機能をサポートしています。この機能は `GNU Readline`_ ライブラリ を使って実装されています。このライブラリは Emacs スタイルと -vi スタイルの編集をサポートしています。ライブラリには独自のドキュメントがあ り、ここでそれを繰り返すつもりはありません; -とはいえ、基本について簡単に解説することにします。ここで述べる対話的な編集 とヒストリについては、 Unix 版と Cygwin +あるバージョンの Python インタプリタでは、Korn シェルや GNU Bash シェルに +見られる機能に似た、現在の入力行に対する編集機能やヒストリ置換機能を +サポートしています。この機能は `GNU Readline`_ ライブラリを使って +実装されています。このライブラリは Emacs スタイルと vi スタイルの編集を +サポートしています。ライブラリには独自のドキュメントがあり、ここでそれを +繰り返すつもりはありません。とはいえ、基本について簡単に解説することにしま す。 +ここで述べる対話的な編集とヒストリについては、 Unix 版と Cygwin 版のインタプリタでオプションとして利用することができます。 -.. % Interactive Input Editing and History Substitution -.. % % Some versions of the Python interpreter support editing of the current -.. % % input line and history substitution, similar to facilities found in -.. % % the Korn shell and the GNU Bash shell. This is implemented using the -.. % % \emph{GNU Readline} library, which supports Emacs-style and vi-style -.. % % editing. This library has its own documentation which I won't -.. % % duplicate here; however, the basics are easily explained. The -.. % % interactive editing and history described here are optionally -.. % % available in the \UNIX{} and Cygwin versions of the interpreter. - -この章では、Mark Hammond の PythonWin パッケージや、 Python とともに配布さ れる Tk ベースの環境である IDLE にある -編集機能については解説 *しません* 。 NT 上の DOS ボックスやその他の DOS お よび Windows 類で働く -コマンド行ヒストリ呼出しもまた別のものです。 - -.. % % This chapter does \emph{not} document the editing facilities of Mark -.. % % Hammond's PythonWin package or the Tk-based environment, IDLE, -.. % % distributed with Python. The command line history recall which -.. % % operates within DOS boxes on NT and some other DOS and Windows flavors -.. % % is yet another beast. +この章では、Mark Hammond の PythonWin パッケージや、 Python とともに配布さ れる +Tk ベースの環境である IDLE にある編集機能については解説 *しません* 。 +NT 上の DOS ボックスやその他の DOS および Windows 類で働くコマンド行 +ヒストリ呼出しもまた別のものです。 .. _tut-lineediting: @@ -36,25 +24,17 @@ 行編集 ====== -入力行の編集がサポートされている場合、インタプリタが一次または二次プロンプ トを出力している際にはいつでも有効になっています。現在の行は、慣例的な Emacs -制御文字を使って編集することができます。そのうち最も重要なものとして、以下 のようなキーがあります: :kbd:`C-A` (Control-A) -はカーソルを行の先頭へ移動させます。 :kbd:`C-E` は末尾へ移動させま す。 :kbd:`C-B` は逆方向へ一つ移動させます。 :kbd:`C-F` -は順方向へ移動させます。 Backspace は逆方向に向かって文字を消しま す。 :kbd:`C-D` は順方向に向かって消します。 :kbd:`C-K` -は順方向に向かって行の残りを kill し (消し) ます、 :kbd:`C-Y` は最後に kill された文字列を再び yank し (取り出し) ます。 -:kbd:`C-underscore` 最後の変更を元に戻します; これは、繰り返してどんどんさ かのぼることができます。 - -.. % Line Editing -.. % % If supported, input line editing is active whenever the interpreter -.. % % prints a primary or secondary prompt. The current line can be edited -.. % % using the conventional Emacs control characters. The most important -.. % % of these are: \kbd{C-A} (Control-A) moves the cursor to the beginning -.. % % of the line, \kbd{C-E} to the end, \kbd{C-B} moves it one position to -.. % % the left, \kbd{C-F} to the right. Backspace erases the character to -.. % % the left of the cursor, \kbd{C-D} the character to its right. -.. % % \kbd{C-K} kills (erases) the rest of the line to the right of the -.. % % cursor, \kbd{C-Y} yanks back the last killed string. -.. % % \kbd{C-underscore} undoes the last change you made; it can be repeated -.. % % for cumulative effect. +入力行の編集がサポートされている場合、インタプリタが一次または二次プロンプ トを +出力している際にはいつでも有効になっています。現在の行は、慣例的な Emacs +制御文字を使って編集することができます。そのうち最も重要なものとして、次の +ようなキーがあります。 :kbd:`C-A` (Control-A)はカーソルを行の先頭へ +移動させます。 :kbd:`C-E` は末尾へ移動させます。 :kbd:`C-B` は逆方向へ +一つ移動させます。 :kbd:`C-F` は順方向へ移動させます。 Backspace は逆方向に +向かって文字を消します。 :kbd:`C-D` は順方向に向かって消します。 :kbd:`C-K` +は順方向に向かって行の残りを kill し (消し) ます、 :kbd:`C-Y` は最後に kill +された文字列を再び yank し (取り出し) ます。 +:kbd:`C-underscore` 最後の変更を元に戻します。 +これは、繰り返してどんどんさかのぼることができます。 .. _tut-history: @@ -62,23 +42,16 @@ ヒストリ置換 ============ -ヒストリ置換は次のように働きます。入力された行のうち、空行でない実行された 行はすべてヒストリバッファに保存されます。そして、プロンプト -が呈示されるときには、ヒストリバッファの最も下の新たな行に移動しま す。 :kbd:`C-P` はヒストリバッファの中を一行だけ上に移動し (戻し) -ます。 :kbd:`C-N` は 1 行だけ下に移動します。ヒストリバッファのどの行も編集 することができます。行が編集されると、それを示すために -プロンプトの前にアスタリスクが表示されます [#]_。 :kbd:`Return` キーを押す と現在行がインタプリタへ渡されます。 :kbd:`C-R` -はインクリメンタルな逆方向サーチ (reverse search) を開始し、 :kbd:`C-S` は 順方向サーチ (forward search) -を開始します。 - -.. % History Substitution -.. % % History substitution works as follows. All non-empty input lines -.. % % issued are saved in a history buffer, and when a new prompt is given -.. % % you are positioned on a new line at the bottom of this buffer. -.. % % \kbd{C-P} moves one line up (back) in the history buffer, -.. % % \kbd{C-N} moves one down. Any line in the history buffer can be -.. % % edited; an asterisk appears in front of the prompt to mark a line as -.. % % modified. Pressing the \kbd{Return} key passes the current line to -.. % % the interpreter. \kbd{C-R} starts an incremental reverse search; -.. % % \kbd{C-S} starts a forward search. +ヒストリ置換は次のように働きます。入力された行のうち、空行でない実行された +行はすべてヒストリバッファに保存されます。そして、プロンプトが提示される +ときには、ヒストリバッファの最も下の新たな行に移動します。 +:kbd:`C-P` はヒストリバッファの中を一行だけ上に移動し (戻し) ます。 +:kbd:`C-N` は 1 行だけ下に移動します。ヒストリバッファのどの行も +編集することができます。行が編集されると、それを示すためにプロンプトの前に +アスタリスクが表示されます [#]_。 +:kbd:`Return` キーを押すと現在行がインタプリタへ渡されます。 :kbd:`C-R` +はインクリメンタルな逆方向サーチ (reverse search) を開始し、 :kbd:`C-S` +は順方向サーチ (forward search)を開始します。 .. _tut-keybindings: @@ -86,13 +59,9 @@ キー割り当て ============ -Readline ライブラリのキー割り当て (key binding) やその他のパラメタ は、 :file:`~/.inputrc` という初期化ファイル -[#]_にコマンドを置くことでカスタマイズできます。キー割り当ての形式は - -.. % Key Bindings -.. % % The key bindings and some other parameters of the Readline library can -.. % % be customized by placing commands in an initialization file called -.. % % \file{\~{}/.inputrc}. Key bindings have the form +Readline ライブラリのキー割り当て (key binding) やその他のパラメタは、 +:file:`~/.inputrc` という初期化ファイル[#]_にコマンドを置くことで +カスタマイズできます。キー割り当ての形式は :: @@ -100,23 +69,17 @@ または -.. % % or - :: "string": function-name で、オプションの設定方法は -.. % % and options can be set with - :: set option-name value -です。例えば、以下のように設定します: - -.. % % For example: +です。例えば、以下のように設定します。 :: @@ -131,74 +94,47 @@ "\C-u": universal-argument "\C-x\C-r": re-read-init-file -Python では、 :kbd:`Tab` に対するデフォルトの割り当ては TAB の挿入です。 Readline -のデフォルトであるファイル名補完関数ではないので注意してください。もし、ど うしても Readline のデフォルトを割り当てたいのなら、 +Python では、 :kbd:`Tab` に対するデフォルトの割り当ては TAB の挿入です。 +Readline のデフォルトであるファイル名補完関数ではないので注意してください。 +もし、どうしても Readline のデフォルトを割り当てたいのなら、 :file:`~/.inputrc` に -.. % % Note that the default binding for \kbd{Tab} in Python is to insert a -.. % % \kbd{Tab} character instead of Readline's default filename completion -.. % % function. If you insist, you can override this by putting - :: Tab: complete -を入れれば設定を上書きすることができます。 (もちろん、 :kbd:`Tab` を使って 補完を行うのに慣れている場合、この設定を行うと -インデントされた継続行を入力しにくくなります。) - -.. % % in your \file{\~{}/.inputrc}. (Of course, this makes it harder to -.. % % type indented continuation lines if you're accustomed to using -.. % % \kbd{Tab} for that purpose.) +を入れれば設定を上書きすることができます。 (もちろん、 :kbd:`Tab` を使って +インデントするのに慣れている場合、この設定を行うとインデントされた継続行を +入力しにくくなります。) .. index:: module: rlcompleter module: readline -変数名とモジュール名の自動的な補完がオプションとして利用できます。補完をイ ンタプリタの対話モードで有効にするには、 -以下の設定をスタートアップファイルに追加します: [#]_ - -.. % % Automatic completion of variable and module names is optionally -.. % % available. To enable it in the interpreter's interactive mode, add -.. % % the following to your startup file:\footnote{ -.. % % Python will execute the contents of a file identified by the -.. % % \envvar{PYTHONSTARTUP} environment variable when you start an -.. % % interactive interpreter.} -.. % % \refstmodindex{rlcompleter}\refbimodindex{readline} +変数名とモジュール名の自動的な補完がオプションとして利用できます。補完を +インタプリタの対話モードで有効にするには、以下の設定をスタートアップファイ ルに +追加します。 [#]_ :: import rlcompleter, readline readline.parse_and_bind('tab: complete') -この設定は、 :kbd:`Tab` キーを補完関数に束縛します。従って、 :kbd:`Tab` キーを二回たたくと補完候補が示されます; 補完機能は Python -の文の名前、現在のローカル変数、および利用可能なモジュール名を検索します。 ``string.a`` のようなドットで区切られた式については、最後の -``'.'`` までの式を評価し、結果として得られたオブジェクトの属性から補完候補 を示します。 :meth:`__getattr__` -メソッドを持ったオブジェクトが式に含まれている場合、 :meth:`__getattr__` が アプリケーション定義のコードを実行する -かもしれないので注意してください。 - -.. % % This binds the \kbd{Tab} key to the completion function, so hitting -.. % % the \kbd{Tab} key twice suggests completions; it looks at Python -.. % % statement names, the current local variables, and the available module -.. % % names. For dotted expressions such as \code{string.a}, it will -.. % % evaluate the expression up to the final \character{.} and then -.. % % suggest completions from the attributes of the resulting object. Note -.. % % that this may execute application-defined code if an object with a -.. % % \method{__getattr__()} method is part of the expression. +この設定は、 :kbd:`Tab` キーを補完関数に束縛します。従って、 :kbd:`Tab` キーを +二回たたくと補完候補が示されます。 +補完機能は Python の文の名前、現在のローカル変数、および利用可能な +モジュール名を検索します。 ``string.a`` のようなドットで区切られた式に +ついては、最後の ``'.'`` までの式を評価し、結果として得られたオブジェクトの +属性から補完候補を示します。 :meth:`__getattr__` メソッドを持ったオブジェク トが +式に含まれている場合、 :meth:`__getattr__` がアプリケーション定義のコードを +実行するかもしれないので注意してください。 より良くできたスタートアップファイルは以下例のようになります。 この例では、作成した名前が不要になると削除されるのに注目してください。 これは、スタートアップファイルが対話コマンドと同じ名前空間で実行されている ので、 不要な名前を除去して対話環境に副作用を生まないようにするためです。 -import されたモジュールのうち、 :mod:`os` のようなインタプリタのほとんどの セッションで -必要なものについては、残しておくと便利に思うかもしれません。 - -.. % % A more capable startup file might look like this example. Note that -.. % % this deletes the names it creates once they are no longer needed; this -.. % % is done since the startup file is executed in the same namespace as -.. % % the interactive commands, and removing the names avoids creating side -.. % % effects in the interactive environments. You may find it convenient -.. % % to keep some of the imported modules, such as \module{os}, which turn -.. % % out to be needed in most sessions with the interpreter. +import されたモジュールのうち、 :mod:`os` のようなインタプリタのほとんどの +セッションで必要なものについては、残しておくと便利に思うかもしれません。 :: @@ -235,36 +171,32 @@ インタラクティブインタプタの代替 ================================ -この機能は、初期の版のインタプリタに比べれば大きな進歩です; とはいえ、まだ いくつかの要望が残されています: 例えば、 -行を継続するときに正しいインデントが呈示されたら快適でしょう (パーサは次の 行でインデントトークンが必要かどうかを知っています)。 -補完機構がインタプリタのシンボルテーブルを使ってもよいかもしれません。かっ こやクォートなどの対応をチェックする (あるいは指示する) コマンドも +この機能は、初期の版のインタプリタに比べれば大きな進歩です。とはいえ、 +まだいくつかの要望が残されています。例えば、行を継続するときに正しい +インデントが提示されたら快適でしょう (パーサは次の行でインデントトークンが +必要かどうかを知っています)。 +補完機構がインタプリタのシンボルテーブルを使ってもよいかもしれません。 +括弧やクォートなどの対応をチェックする (あるいは指示する) コマンドも 有用でしょう。 -より優れたインタラクティブインタプリタの代替の一つは `IPython`_ がありま す。 -このインタプリタは、様々なところで使われていて、 -タブ補完、オブジェクト探索や先進的な履歴管理といった機能を持っています。 +より優れたインタラクティブインタプリタの代替の一つに `IPython`_ がありま す。 +このインタプリタは、様々なところで使われていて、タブ補完、オブジェクト探索 や +先進的な履歴管理といった機能を持っています。 他のアプリケーションにカスタマイズされたり、組込まれこともあります。 別の優れたインタラクティブ環境としては `bpython`_ があります。 -.. % Commentary -.. % % This facility is an enormous step forward compared to earlier versions -.. % % of the interpreter; however, some wishes are left: It would be nice if -.. % % the proper indentation were suggested on continuation lines (the -.. % % parser knows if an indent token is required next). The completion -.. % % mechanism might use the interpreter's symbol table. A command to -.. % % check (or even suggest) matching parentheses, quotes, etc., would also -.. % % be useful. - .. rubric:: Footnotes -.. [#] 訳注: これはデフォルト設定の Readline では現れません。 ``set mark-modified-lines on`` という行を - :file:`~/.inputrc` または環境変数 :envvar:`INPUTRC` が指定するファイルに 置くことによって現れるようになります。 - -.. [#] 訳注: このファイル名は環境変数 :envvar:`INPUTRC` がもしあればその指 定が優先されます。 - -.. [#] Python は、対話インタプリタを開始する時に :envvar:`PYTHONSTARTUP` 環境変数が指定するファイルの内容を実行します。 - +.. [#] 訳注: これはデフォルト設定の Readline では現れません。 + ``set mark-modified-lines on`` という行を :file:`~/.inputrc` または環境 変数 + :envvar:`INPUTRC` が指定するファイルに置くことによって現れるようになりま す。 + +.. [#] 訳注: このファイル名は環境変数 :envvar:`INPUTRC` がもしあればその指 定が + 優先されます。 + +.. [#] Python は、対話インタプリタを開始する時に :envvar:`PYTHONSTARTUP` + 環境変数が指定するファイルの内容を実行します。 .. _GNU Readline: http://tiswww.case.edu/php/chet/readline/rltop.html .. _IPython: http://ipython.scipy.org/ ============================================================================== Revision: f905d79d0f Author: INADA Naoki <inada****@klab*****> Date: Mon Mar 7 08:27:48 2011 Log: レビュー: tutorial/floatingpoint.rst http://code.google.com/p/python-doc-ja/source/detail?r=f905d79d0f Modified: /tutorial/floatingpoint.rst ======================================= --- /tutorial/floatingpoint.rst Thu Feb 17 08:42:33 2011 +++ /tutorial/floatingpoint.rst Mon Mar 7 08:27:48 2011 @@ -7,11 +7,8 @@ .. sectionauthor:: Tim Peters <tim_one****@users*****> -浮動小数点数は、計算機ハードウェアの中では、基数を 2 とする (2進法の) 分数 として表現されています。例えば、小数 - -.. % % Floating Point Arithmetic: Issues and Limitations -.. % % Floating-point numbers are represented in computer hardware as -.. % % base 2 (binary) fractions. For example, the decimal fraction +浮動小数点数は、計算機ハードウェアの中では、基数を 2 とする (2進法の) +分数として表現されています。例えば、小数 :: @@ -19,32 +16,20 @@ は、 1/10 + 2/100 + 5/1000 という値を持ちますが、これと同様に、 2 進法の分 数 -.. % % has value 1/10 + 2/100 + 5/1000, and in the same way the binary fraction - :: 0.001 -は 0/2 + 0/4 + 1/8 という値になります。これら二つの分数は同じ値を持っていま すが、ただ一つ、最初の分数は基数 10 で記述されており、 -二番目の分数は基数 2 で記述されていることが違います。 - -.. % % has value 0/2 + 0/4 + 1/8. These two fractions have identical values, -.. % % the only real difference being that the first is written in base 10 -.. % % fractional notation, and the second in base 2. - -残念なことに、ほとんどの小数は 2 進法の分数として正確に表わすことができませ ん。その結果、一般に、入力した 10 進の浮動小数点数は、 2 -進法の浮動小数点数で近似された後、実際にマシンに記憶されます。 - -.. % % Unfortunately, most decimal fractions cannot be represented exactly as -.. % % binary fractions. A consequence is that, in general, the decimal -.. % % floating-point numbers you enter are only approximated by the binary -.. % % floating-point numbers actually stored in the machine. - -最初は基数 10 を使うと問題を簡単に理解できます。分数 1/3 を考えてみましょ う。分数 1/3 は、基数 10 の分数として、以下のように近似する -ことができます: - -.. % % The problem is easier to understand at first in base 10. Consider the -.. % % fraction 1/3. You can approximate that as a base 10 fraction: +は 0/2 + 0/4 + 1/8 という値になります。これら二つの分数は同じ値を持っていま すが、 +ただ一つ、最初の分数は基数 10 で記述されており、二番目の分数は基数 2 で +記述されていることが違います。 + +残念なことに、ほとんどの小数は 2 進法の分数として正確に表わすことができませ ん。 +その結果、一般に、入力した 10 進の浮動小数点数は、 2 進法の浮動小数点数で +近似された後、実際にマシンに記憶されます。 + +最初は基数 10 を使うと問題を簡単に理解できます。分数 1/3 を考えてみましょ う。 +分数 1/3 は、基数 10 の分数として、以下のように近似することができます。 :: @@ -52,149 +37,100 @@ さらに正確な近似は、 -.. % % or, better, - :: 0.33 です。さらに正確に近似すると、 -.. % % or, better, - :: 0.333 -となり、以後同様です。何個桁数を増やして書こうが、結果は決して厳密な 1/3 に はなりません。しかし、少しづつ正確な近似にはなっていくでしょう。 - -.. % % and so on. No matter how many digits you're willing to write down, the -.. % % result will never be exactly 1/3, but will be an increasingly better -.. % % approximation to 1/3. - -同様に、基数を 2 とした表現で何桁使おうとも、10 進数の 0.1 は基数を 2 とし た分数で正確に表現することはできません。基数 2 では、1/10 -は循環小数 (repeating fraction) - -.. % % In the same way, no matter how many base 2 digits you're willing to -.. % % use, the decimal value 0.1 cannot be represented exactly as a base 2 -.. % % fraction. In base 2, 1/10 is the infinitely repeating fraction +となり、以後同様です。何個桁数を増やして書こうが、結果は決して厳密な 1/3 に は +なりません。しかし、少しづつ正確な近似にはなっていくでしょう。 + +同様に、基数を 2 とした表現で何桁使おうとも、10 進数の 0.1 は基数を 2 とし た +分数で正確に表現することはできません。基数 2 では、1/10 は循環小数 (repeating +fraction) となります。 :: 0.0001100110011001100110011001100110011001100110011... -となります。どこか有限の桁で止めると、近似値を得ることになります。これこそ が、以下のような事態: - -.. % % Stop at any finite number of bits, and you get an approximation. This -.. % % is why you see things like: +どこか有限の桁で止めると、近似値を得ることになります。 +これこそが、次のような事態に出くわす理由です。 :: >>> 0.1 0.10000000000000001 -に出くわす理由です。 - -今日では、ほとんどのマシンでは、0.1 を Python のプロンプトから入力すると上 のような結果を目にします。そうならないかもしれませんが、これは -ハードウェアが浮動小数点数を記憶するのに用いているビット数がマシンによって 異なり、Python は単にマシンに 2 進で記憶されている、真の 10 進の -値を近似した値を、されに 10 進で近似して出力するだけだからです。ほとんどの マシンでは、Python が 0.1 を記憶するために 2 進近似した真の値を -10 進で表すと、以下のような出力 - -.. % % On most machines today, that is what you'll see if you enter 0.1 at -.. % % a Python prompt. You may not, though, because the number of bits -.. % % used by the hardware to store floating-point values can vary across -.. % % machines, and Python only prints a decimal approximation to the true -.. % % decimal value of the binary approximation stored by the machine. On -.. % % most machines, if Python were to print the true decimal value of -.. % % the binary approximation stored for 0.1, it would have to display +今日では、ほとんどのマシンでは、0.1 を Python のプロンプトから入力すると上 の +ような結果を目にします。そうならないかもしれませんが、これはハードウェアが +浮動小数点数を記憶するのに用いているビット数がマシンによって異なり、Python は +単にマシンに 2 進で記憶されている、真の 10 進の値を近似した値を、されに 10 進で +近似して出力するだけだからです。ほとんどのマシンでは、Python が 0.1 を +記憶するために 2 進近似した真の値を10 進で表すと、以下のような出力になるで しょう! :: >>> 0.1 0.1000000000000000055511151231257827021181583404541015625 -になるでしょう! Python プロンプトは、文字列表現を得るために何に対して も :func:`repr` を使います。浮動小数点数の場合、 -``repr(float)`` は真の 10 進値を有効数字 17 桁で丸め、以下のような表示 - -.. % % instead! The Python prompt uses the built-in -.. % % \function{repr()} function to obtain a string version of everything it -.. % % displays. For floats, \code{repr(\var{float})} rounds the true -.. % % decimal value to 17 significant digits, giving +Python プロンプトは、文字列表現を得るために何に対しても :func:`repr` を +使います。浮動小数点数の場合、 ``repr(float)`` は真の 10 進値を有効数字 +17 桁で丸め、以下のような表示を行います。 :: 0.10000000000000001 -を行います。 - -``repr(float)`` が有効数字 17桁の値を生成するのは、この値が (ほとんどのマシ ン上で) 、全ての有限の浮動小数点数 *x* について -``eval(repr(x)) == x`` が成り立つのに十分で、かつ有効数字 16 桁に丸めると成 り立たないからです。 - -.. % % \code{repr(\var{float})} produces 17 significant digits because it -.. % % turns out that's enough (on most machines) so that -.. % % \code{eval(repr(\var{x})) == \var{x}} exactly for all finite floats -.. % % \var{x}, but rounding to 16 digits is not enough to make that true. - -これは 2 進法の浮動小数点の性質です: Python のバグでも、ソースコードのバグ でもなく、浮動小数点演算を扱えるハードウェア上の、すべての言語で同じ -類の現象が発生します (ただし、言語によっては、デフォルトのモードや全ての出 力モードでその差を *表示しない* かもしれません)。 - -.. % % Note that this is in the very nature of binary floating-point: this is -.. % % not a bug in Python, and it is not a bug in your code either. You'll -.. % % see the same kind of thing in all languages that support your -.. % % hardware's floating-point arithmetic (although some languages may -.. % % not \emph{display} the difference by default, or in all output modes). - -Python の組み込みの :func:`str` 関数は有効数字 12 桁しか生成しません。この ため、この関数を代わりに使用したいと思うかもしれません。 -この関数は ``eval(str(x))`` としたときに *x* を再現しないことが多いですが、 出力を目で見るには好ましいかもしれません: - -.. % % Python's built-in \function{str()} function produces only 12 -.. % % significant digits, and you may wish to use that instead. It's -.. % % unusual for \code{eval(str(\var{x}))} to reproduce \var{x}, but the -.. % % output may be more pleasant to look at: +``repr(float)`` が有効数字 17 桁の値を生成するのは、この値が (ほとんどの +マシン上で) 、全ての有限の浮動小数点数 *x* について ``eval(repr(x)) == x`` +が成り立つのに十分で、かつ有効数字 16 桁に丸めると成り立たないからです。 + +これは 2 進法の浮動小数点の性質です: Python のバグでも、ソースコードの +バグでもなく、浮動小数点演算を扱えるハードウェア上の、すべての言語で +同じ類の現象が発生します (ただし、言語によっては、デフォルトのモードや +全ての出力モードでその差を *表示しない* かもしれません)。 + +Python の組み込みの :func:`str` 関数は有効数字 12 桁しか生成しません。 +このため、この関数を代わりに使用したいと思うかもしれません。 +この関数は ``eval(str(x))`` としたときに *x* を再現しないことが多いですが、 +出力を目で見るには好ましいかもしれません。 :: >>> print str(0.1) 0.1 -現実という考えからは、上の表示は錯覚であると気づくのは重要なことです: マシ ン内の値は厳密に 1/10 ではなく、単に真のマシン内の *表示される値* +現実には、上の表示は錯覚であると気づくのは重要なことです。 +マシン内の値は厳密に 1/10 ではなく、単に真のマシン内の *表示される値* を丸めているだけなのです。 -.. % % It's important to realize that this is, in a real sense, an illusion: -.. % % the value in the machine is not exactly 1/10, you're simply rounding -.. % % the \emph{display} of the true machine value. - -まだ驚くべきことがあります。例えば、以下 - -.. % % Other surprises follow from this one. For example, after seeing +まだ驚くべきことがあります。例えば、以下を見て、 :: >>> 0.1 0.10000000000000001 -を見て、 :func:`round` 関数を使って桁を切り捨て、期待する 1 桁にしたい誘惑 にかられたとします。しかし、結果は依然同じ値です: - -.. % % you may be tempted to use the \function{round()} function to chop it -.. % % back to the single digit you expect. But that makes no difference: +:func:`round` 関数を使って桁を切り捨て、期待する 1 桁にしたい誘惑に +かられたとします。しかし、結果は依然同じ値です。 :: >>> round(0.1, 1) 0.10000000000000001 -問題は、"0.1" を表すために記憶されている 2 進表現の浮動小数点数の値は、すで に 1/10 に対する最良の近似になっており、値を再度丸めようとしても -これ以上ましにはならないということです: すでに値は、 :func:`round` で得られ る値になっているというわけです。 - -.. % % The problem is that the binary floating-point value stored for "0.1" -.. % % was already the best possible binary approximation to 1/10, so trying -.. % % to round it again can't make it better: it was already as good as it -.. % % gets. - -もう一つの重要なことは、0.1 が正確に 1/10 ではないため、0.1 を 10 個加算す ると厳密に 1.0 にはならないこともある、ということです: - -.. % % Another consequence is that since 0.1 is not exactly 1/10, -.. % % summing ten values of 0.1 may not yield exactly 1.0, either: +問題は、"0.1" を表すために記憶されている 2 進表現の浮動小数点数の値は、 +すでに 1/10 に対する最良の近似になっており、値を再度丸めようとしても +これ以上ましにはならないということです。 +すでに値は、 :func:`round` で得られる値になっているというわけです。 + +もう一つの重要なことは、0.1 が正確に 1/10 ではないため、0.1 を 10 個 +加算すると厳密に 1.0 にはならないこともある、ということです。 :: @@ -205,41 +141,26 @@ >>> sum 0.99999999999999989 -2 進の浮動小数点数に対する算術演算は、このような意外性をたくさん持っていま す。"0.1" に関する問題は、以下の "表現エラー" の章で詳細に説明します。 -2 進法の浮動小数点演算にともなうその他のよく知られた意外な事象に関しては `The Perils of Floating Point -<http://www.lahey.com/float.htm>`_ を参照してください。 - -.. % % Binary floating-point arithmetic holds many surprises like this. The -.. % % problem with "0.1" is explained in precise detail below, in the -.. % % "Representation Error" section. See -.. % % \citetitle[http://www.lahey.com/float.htm]{The Perils of Floating -.. % % Point} for a more complete account of other common surprises. - -究極的にいうと、"容易な答えはありません"。ですが、浮動小数点数のことを過度 に警戒しないでください! Python の float 型操作における -エラーは浮動小数点処理ハードウェアから受けついたものであり、ほとんどのマシ ン上では一つの演算あたり高々 2\*\*53 分の 1 です。 -この誤差はほとんどの作業で相当以上のものですが、浮動小数点演算は 10 進の演 算えはなく、浮動小数点の演算を新たに行うと、新たな -丸め誤差の影響を受けることを心にとどめておいてください。 - -.. % % As that says near the end, ``there are no easy answers.'' Still, -.. % % don't be unduly wary of floating-point! The errors in Python float -.. % % operations are inherited from the floating-point hardware, and on most -.. % % machines are on the order of no more than 1 part in 2**53 per -.. % % operation. That's more than adequate for most tasks, but you do need -.. % % to keep in mind that it's not decimal arithmetic, and that every float -.. % % operation can suffer a new rounding error. - -異常なケースが存在する一方で、普段の浮動小数点演算の利用では、単に最終的な 結果の値を必要な -10 進の桁数に丸めて表示するのなら、最終的には期待通りの結果を得ることになる でしょう。 +2 進の浮動小数点数に対する算術演算は、このような意外性をたくさん持っていま す。 +"0.1" に関する問題は、以下の "表現エラー" の章で詳細に説明します。 +2 進法の浮動小数点演算にともなうその他のよく知られた意外な事象に関しては +`The Perils of Floating Point <http://www.lahey.com/float.htm>`_ を +参照してください。 + +究極的にいうと、"容易な答えはありません"。ですが、浮動小数点数のことを過度 に +警戒しないでください! Python の float 型操作におけるエラーは +浮動小数点処理ハードウェアから受けついたものであり、ほとんどのマシン上では +一つの演算あたり高々 2\*\*53 分の 1 です。 +この誤差はほとんどの作業で充分以上のものですが、浮動小数点演算は 10 進の +演算ではなく、浮動小数点の演算を新たに行うと、新たな丸め誤差の影響を受ける +ことを心にとどめておいてください。 + +異常なケースが存在する一方で、普段の浮動小数点演算の利用では、単に最終的な +結果の値を必要な 10 進の桁数に丸めて表示するのなら、最終的には期待通りの +結果を得ることになるでしょう。 こうした操作は普通 :func:`str` で事足りますし、よりきめ細かな制御をしたけれ ば、 -:ref:`formatstrings` にある :meth:`str.format` メソッドのフォーマット仕様を 参照してください。 - -.. % % While pathological cases do exist, for most casual use of -.. % % floating-point arithmetic you'll see the result you expect in the end -.. % % if you simply round the display of your final results to the number of -.. % % decimal digits you expect. \function{str()} usually suffices, and for -.. % % finer control see the discussion of Pythons's \code{\%} format -.. % % operator: the \code{\%g}, \code{\%f} and \code{\%e} format codes -.. % % supply flexible and easy ways to round float results for display. +:ref:`formatstrings` にある :meth:`str.format` メソッドのフォーマット仕様を +参照してください。 .. _tut-fp-error: @@ -247,42 +168,27 @@ 表現エラー ========== -この章では、"0.1" の例について詳細に説明し、このようなケースに対してどのよ うにすれば正確な分析を自分で行えるかを示します。ここでは、 2 +この章では、"0.1" の例について詳細に説明し、このようなケースに対してどのよ うに +すれば正確な分析を自分で行えるかを示します。ここでは、 2 進法表現の浮動小数点数についての基礎的な知識があるものとして話を進めます。 -.. % Representation Error -.. % % This section explains the ``0.1'' example in detail, and shows how -.. % % you can perform an exact analysis of cases like this yourself. Basic -.. % % familiarity with binary floating-point representation is assumed. - -:dfn:`表現エラー` は、いくつかの (実際にはほとんどの) 10 進の小数が 2 進法 (基数 2 ) -の分数として表現できないという事実に関係しています。これは Python (あるい は Perl、 C、 C++、Japa、Fortran 、および -その他多く) が期待通りの正確な 10 進数を表示できない主要な理由です: - -.. % % \dfn{Representation error} refers to the fact that some (most, actually) -.. % % decimal fractions cannot be represented exactly as binary (base 2) -.. % % fractions. This is the chief reason why Python (or Perl, C, \Cpp, -.. % % Java, Fortran, and many others) often won't display the exact decimal -.. % % number you expect: +表現エラー(:dfn:`Representation error`)は、いくつかの (実際にはほとんどの) +10 進の小数が 2 進法 (基数 2 )の分数として表現できないという事実に +関係しています。これは Python (あるいは Perl、 C、 C++、Japa、Fortran 、お よび +その他多く) が期待通りの正確な 10 進数を表示できない主要な理由です。 :: >>> 0.1 0.10000000000000001 -なぜこうなるのでしょうか? 1/10 は 2 進法の分数で厳密に表現することができま せん。今日 (2000年11月) のマシンは、ほとんどすべて -IEEE-754 浮動小数点演算を使用しており、ほとんどすべてのプラットフォームで は Python の浮動小数点を IEEE-754 における "倍精度 -(double precision)" に対応付けます。754 の double には 53 ビットの精度を持 つ数が入るので、 -計算機に入力を行おうとすると、可能な限り 0.1 を最も近い値の分数に変換し、 -*J*/2**\ *N* の形式にしようと努力します。 *J* はちょうど 53 ビットの精度の 整数です。 - -.. % % Why is that? 1/10 is not exactly representable as a binary fraction. -.. % % Almost all machines today (November 2000) use IEEE-754 floating point -.. % % arithmetic, and almost all platforms map Python floats to IEEE-754 -.. % % "double precision". 754 doubles contain 53 bits of precision, so on -.. % % input the computer strives to convert 0.1 to the closest fraction it can -.. % % of the form \var{J}/2**\var{N} where \var{J} is an integer containing -.. % % exactly 53 bits. Rewriting +なぜこうなるのでしょうか? 1/10 は 2 進法の分数で厳密に表現することができま せん。 +今日 (2000年11月) のマシンは、ほとんどすべて IEEE-754 浮動小数点演算を使用 して +おり、ほとんどすべてのプラットフォームでは Python の浮動小数点を IEEE-754 +における "倍精度(double precision)" に対応付けます。754 の double には 53 +ビットの精度を持つ数が入るので、計算機に入力を行おうとすると、可能な限り +0.1 を最も近い値の分数に変換し、*J*/2**\ *N* の形式にしようと努力します。 +*J* はちょうど 53 ビットの精度の整数です。 :: @@ -290,17 +196,12 @@ を書き直すと、 -.. % % as - :: J ~= 2**N / 10 -となります。 *J* は厳密に 53 ビットの精度を持っている (``>= 2**52`` だが ``< 2**53`` ) ことを思い出すと、 *N* -として最適な値は 56 になります: - -.. % % and recalling that \var{J} has exactly 53 bits (is \code{>= 2**52} but -.. % % \code{< 2**53}), the best value for \var{N} is 56: +となります。 *J* は厳密に 53 ビットの精度を持っている (``>= 2**52`` だが +``< 2**53`` ) ことを思い出すと、 *N* として最適な値は 56 になります。 :: @@ -311,11 +212,8 @@ >>> 2**56/10 7205759403792793L -すなわち、56 は *J* をちょうど 53 ビットの精度のままに保つ *N* の唯一の値で す。 *J* の取りえる値はその商を丸めたものです: - -.. % % That is, 56 is the only value for \var{N} that leaves \var{J} with -.. % % exactly 53 bits. The best possible value for \var{J} is then that -.. % % quotient rounded: +すなわち、56 は *J* をちょうど 53 ビットの精度のままに保つ *N* の唯一の値で す。 +*J* の取りえる値はその商を丸めたものです。 :: @@ -323,38 +221,29 @@ >>> r 6L -残りは 10 の半分以上なので、最良の近似は丸め値を一つ増やした (round up) も のになります: - -.. % % Since the remainder is more than half of 10, the best approximation is -.. % % obtained by rounding up: +残りは 10 の半分以上なので、最良の近似は丸め値を一つ増やした (round up) +ものになります。 :: >>> q+1 7205759403792794L -従って、754 倍精度における 1/10 の取りえる最良の近似は 2\*\*56 以上の値、も しくは - -.. % % Therefore the best possible approximation to 1/10 in 754 double -.. % % precision is that over 2**56, or +従って、754 倍精度における 1/10 の取りえる最良の近似は 2\*\*56 以上の値、 +もしくは :: 7205759403792794 / 72057594037927936 -となります。丸め値を 1 増やしたので、この値は実際には 1/10 より少し小さいこ とに注意してください; 丸め値を 1 増やさない場合、商は 1/10 -よりもわずかに小さくなります。しかし、どちらにしろ *厳密に* 1/10 ではありま せん! - -.. % % Note that since we rounded up, this is actually a little bit larger than -.. % % 1/10; if we had not rounded up, the quotient would have been a little -.. % % bit smaller than 1/10. But in no case can it be \emph{exactly} 1/10! - -つまり、計算機は 1/10 を "理解する" ことは決してありません: 計算機が理解で きるのは、上記のような厳密な分数であり、 754 +となります。丸め値を 1 増やしたので、この値は実際には 1/10 より少し小さいこ とに +注意してください; 丸め値を 1 増やさない場合、商は 1/10 よりもわずかに小さく +なります。しかし、どちらにしろ *厳密に* 1/10 ではありません! + +つまり、計算機は 1/10 を "理解する" ことは決してありません。 +計算機が理解できるのは、上記のような厳密な分数であり、 754 の倍精度浮動小数点数で得られるもっともよい近似は: -.. % % So the computer never ``sees'' 1/10: what it sees is the exact -.. % % fraction given above, the best 754 double approximation it can get: - :: >>> .1 * 2**56 @@ -362,25 +251,18 @@ となります。 -この分数に 10\*\*30 を掛ければ、有効数字 30 桁の十進数の (切り詰められた) 値を見ることができます: - -.. % % If we multiply that fraction by 10**30, we can see the (truncated) -.. % % value of its 30 most significant decimal digits: +この分数に 10\*\*30 を掛ければ、有効数字 30 桁の十進数の (切り詰められた) +値を見ることができます。 :: >>> 7205759403792794 * 10**30 / 2**56 100000000000000005551115123125L -これは、計算機が記憶している正確な数値が、10 進数値 0.100000000000000005551115123125 にほぼ等しいということです。この値を -有効数字 17 桁で丸めると、Python が表示する値は 0.10000000000000001 になり ます (もちろんこのような値になるのは、 IEEE -754 に適合していて、C ライブラリで可能な限り正確に値の入出力を行った場合だ けです --- 読者の計算機ではそうではないかもしれません!) - -.. % % meaning that the exact number stored in the computer is approximately -.. % % equal to the decimal value 0.100000000000000005551115123125. Rounding -.. % % that to 17 significant digits gives the 0.10000000000000001 that Python -.. % % displays (well, will display on any 754-conforming platform that does -.. % % best-possible input and output conversions in its C library --- yours may -.. % % not!). - - +これは、計算機が記憶している正確な数値が、10 進数値 +0.100000000000000005551115123125 にほぼ等しいということです。この値を +有効数字 17 桁で丸めると、Python が表示する値は 0.10000000000000001 に +なります (もちろんこのような値になるのは、 IEEE 754 に適合していて、C +ライブラリで可能な限り正確に値の入出力を行った場合だけです --- +読者の計算機ではそうではないかもしれません!) + ============================================================================== Revision: 0b2b9534a8 Author: INADA Naoki <inada****@klab*****> Date: Wed Mar 9 06:16:24 2011 Log: Update to 2.6.6: library/curses.rst http://code.google.com/p/python-doc-ja/source/detail?r=0b2b9534a8 Modified: /library/curses.rst ======================================= --- /library/curses.rst Sat Nov 27 10:59:46 2010 +++ /library/curses.rst Wed Mar 9 06:16:24 2011 @@ -4,10 +4,10 @@ .. module:: curses :synopsis: 可搬性のある端末操作を提供する curses ライブラリへのインタフ ェース. + :platform: Unix .. sectionauthor:: Moshe Zadka <moshe****@zadka*****> .. sectionauthor:: Eric Raymond <esr****@thyrs*****> - .. versionchanged:: 1.6 ``ncurses`` ライブラリのサポートを追加し、パッケージに変換しました. @@ -175,7 +175,7 @@ .. function:: filter() - :func:`filter` ルーチンを使う場合、 :func:`initscr` を呼ぶ前に呼び出さな くてはなりません。この手順のもたらす効果は以下の + :func:`.filter` ルーチンを使う場合、 :func:`initscr` を呼ぶ前に呼び出さ なくてはなりません。この手順のもたらす効果は以下の 通りです: まず二つの関数の呼び出しの間は、LINES は 1 に設定されます; clear、cup、cud、cud1、cuu1、cuu、vpa は無効化されます; home 文字列は cr の値に設定されます。これにより、カー ソルは現在の行に制限されるので、スクリーンの更新も同様に制限されます。 この関数は、スクリーンの他の部分に影響を及ぼさずに文字単位の行編集を行う 場合に利用できます。 @@ -695,8 +695,10 @@ .. method:: window.getch([y, x]) - 文字を取得します。返される整数は ASCII の範囲の値となる *わけではない* ので注意してください: ファンクションキー、キーパッド上のキー等は 256 - よりも大きな数字を返します。無遅延 (no-delay) モードでは、入力がない場 合 -1 が返されます。 + 文字を取得します。返される整数は ASCII の範囲の値となる *わけではない* ので + 注意してください。ファンクションキー、キーパッド上のキー等は 256 よりも + 大きな数字を返します。無遅延 (no-delay) モードでは、入力がない場合 -1 が + 返されます。それ以外の場合は、 :func:`getch` はキー入力を待ちます。 .. method:: window.getkey([y, x]) ============================================================================== Revision: 4512bd0963 Author: INADA Naoki <inada****@klab*****> Date: Wed Mar 9 06:17:54 2011 Log: Update to 2.6.6: library/codeop.rst http://code.google.com/p/python-doc-ja/source/detail?r=4512bd0963 Modified: /library/codeop.rst ======================================= --- /library/codeop.rst Tue Jun 8 22:21:23 2010 +++ /library/codeop.rst Wed Mar 9 06:17:54 2011 @@ -42,7 +42,7 @@ 他のどんな値も :exc:`ValueError` を発生させる原因となります。 - .. warning:: + .. note:: ソースの終わりに達する前に、成功した結果をもってパーサは構文解析を止 めることがあります。 このような場合、後ろに続く記号はエラーとならずに無視されます。 ============================================================================== Revision: 1b2cecd9b4 Author: INADA Naoki <inada****@klab*****> Date: Wed Mar 9 06:20:18 2011 Log: Update to 2.6.6: library/posixfile.rst http://code.google.com/p/python-doc-ja/source/detail?r=1b2cecd9b4 Modified: /library/posixfile.rst ======================================= --- /library/posixfile.rst Sat Nov 27 10:59:46 2010 +++ /library/posixfile.rst Wed Mar 9 06:20:18 2011 @@ -17,16 +17,16 @@ .. index:: single: fcntl() (in module fcntl) -このモジュールでは、組み込みのファイルオブジェクトの上にいくつかの追加\ -機能を実装しています。特に、このオブジェクトはファイルのロック機構、ファ\ -イルフラグへの操作、およびファイルオブジェクトを複製するための簡単なイ\ -ンタフェースを実装しています。オブジェクトは全ての標準ファイルオブジェ\ -クトのメソッドに加え、以下に述べるメソッドを持っています。このモジュー\ +このモジュールでは、組み込みのファイルオブジェクトの上にいくつかの追加 +機能を実装しています。特に、このオブジェクトはファイルのロック機構、ファ +イルフラグへの操作、およびファイルオブジェクトを複製するための簡単なイ +ンタフェースを実装しています。オブジェクトは全ての標準ファイルオブジェ +クトのメソッドに加え、以下に述べるメソッドを持っています。このモジュー ルはファイルのロック機構に :func:`fcntl.fcntl` を用いるため、ある種の Unix でしか動作しません。 -posixfile オブジェクトをインスタンス化するには、 -:mod:`posixfile` モジュールの :func:`open` 関数を使います。 +posixfile オブジェクトをインスタンス化するには、 :func:`posixfile.open` 関 数を +使います。 生成されるオブジェクトは標準ファイルオブジェクトとだいたい同じルック&フィー ルです。 :mod:`posixfile` モジュールでは、以下の定数を定義しています: ============================================================================== Revision: cd5ec8fd4b Author: INADA Naoki <inada****@klab*****> Date: Wed Mar 9 06:33:47 2011 Log: Update to 2.6.6: library/ftplib.rst http://code.google.com/p/python-doc-ja/source/detail?r=cd5ec8fd4b Modified: /library/ftplib.rst ======================================= --- /library/ftplib.rst Mon Nov 22 08:46:40 2010 +++ /library/ftplib.rst Wed Mar 9 06:33:47 2011 @@ -33,8 +33,8 @@ '226 Transfer complete.' >>> ftp.quit() -このモジュールは以下の項目を定義しています: - + +このモジュールは以下の項目を定義しています。 .. class:: FTP([host[, user[, passwd[, acct[, timeout]]]]]) @@ -49,37 +49,40 @@ *timeout* が追加されました。 - .. attribute:: all_errors - - :class:`FTP` インスタンスのメソッドの結果、FTP接続で(プログラミング のエラーと考えられるメソッドの実行によって)発生する全ての例外(タプル形 - 式)。この例外には以下の4つのエラーはもちろん、 :exc:`socket.error` と :exc:`IOError` も含まれます。 +.. exception:: error_reply + + サーバから想定外の応答があった時に発生する例外。 - .. exception:: error_reply - - サーバから想定外の応答があった時に発生する例外。 +.. exception:: error_temp + + 400--499の範囲のエラー応答コードを受け取った時に発生する例外。 - .. exception:: error_temp - - 400--499の範囲のエラー応答コードを受け取った時に発生する例外。 +.. exception:: error_perm + + 500--599の範囲のエラー応答コードを受け取った時に発生する例外。 - .. exception:: error_perm - - 500--599の範囲のエラー応答コードを受け取った時に発生する例外。 +.. exception:: error_proto + + 1--5の数字で始まらない応答コードをサーバから受け取った時に発生する例外。 - .. exception:: error_proto - - 1--5の数字で始まらない応答コードをサーバから受け取った時に発生する例 外。 +.. data:: all_errors + + :class:`FTP` インスタンスのメソッド実行時、FTP接続で(プログラミングの + エラーと考えられるメソッドの実行によって)発生する全ての例外(タプル形式 )。 + この例外には以下の4つのエラーはもちろん、 :exc:`socket.error` と + :exc:`IOError` も含まれます。 .. seealso:: Module :mod:`netrc` - :file:`.netrc` ファイルフォーマットのパーザ。 :file:`.netrc` ファイル は、FTPクライアントがユーザにプロンプトを出す前に、 - ユーザ認証情報をロードするのによく使われます。 + :file:`.netrc` ファイルフォーマットのパーザ。 :file:`.netrc` ファイル は、 + FTPクライアントがユーザにプロンプトを出す前に、ユーザ認証情報を + ロードするのによく使われます。 .. index:: single: ftpmirror.py @@ -129,12 +132,18 @@ .. method:: FTP.login([user[, passwd[, acct]]]) - ct 与えられた *user* でログインします。 *passwd* と *acct* のパラメータ は省略可能で、デフォルトでは空文字列です。 + 与えられた *user* でログインします。 *passwd* と *acct* のパラメータは + 省略可能で、デフォルトでは空文字列です。 もし *user* が指定されないなら、デフォルトで ``'anonymous'`` になりま す。 - もし *user* が ``'anonymous'`` なら、デフォルトの *passwd* は ``'anonymous@'`` になります。 - このfunctionは各インスタンスについて一度だけ、接続が確立した後に呼び出さ なければなりません; - インスタンスが作られた時にホスト名とユーザ名が与えられていたら、このメソ ッドを実行すべきではありません。 + もし *user* が ``'anonymous'`` なら、デフォルトの *passwd* は + ``'anonymous@'`` になります。 + この関数は各インスタンスについて一度だけ、接続が確立した後に呼び出さなけ れば + なりません。 + インスタンスが作られた時にホスト名とユーザ名が与えられていたら、この + メソッドを実行すべきではありません。 ほとんどのFTPコマンドはクライアントがログインした後に実行可能になりま す。 + *acct* 引数は "accounting information" を提供します。ほとんどのシステム は + これを実装していません。 .. method:: FTP.abort() @@ -166,15 +175,16 @@ .. Retrieve a file or directory listing in ASCII transfer mode. *command* should be an appropriate ``RETR`` command (see :meth:`retrbinary`) or a command such as ``LIST``, ``NLST`` or ``MLSD`` (usually just the string - ``'LIST'``). The *callback* function is called for each line, with the - trailing CRLF stripped. The default *callback* prints the line to - ``sys.stdout``. + ``'LIST'``). The *callback* function is called for each line with a + string argument containing the line with the trailing CRLF stripped. + The default *callback* prints the line to ``sys.stdout``. ASCII転送モードでファイルとディレクトリのリストを受信します。 *command* は、適切な ``RETR`` コマンド(:meth:`retrbinary` を参照)あるい は - ``LIST``, ``NLST``, ``MLSD`` のようなコマンド(通常は文字列 ``'LIST'``)で なければなりません。 - 関数 *callback* は末尾のCRLFを取り除いた各行に対して実行されます。 - デフォルトでは *callback* は ``sys.stdout`` に各行を印字します。 + ``LIST``, ``NLST``, ``MLSD`` のようなコマンド(通常は文字列 ``'LIST'``)で + なければなりません。 + 関数 *callback* は末尾のCRLFを取り除いた各行を引数にして実行されます。 + デフォルトでは *callback* は ``sys.stdout`` に各行を表示します。 .. method:: FTP.set_pasv(boolean) ============================================================================== Revision: dd5e20cc04 Author: INADA Naoki <inada****@klab*****> Date: Wed Mar 9 06:44:57 2011 Log: Update to 2.6.6: library/undoc.rst http://code.google.com/p/python-doc-ja/source/detail?r=dd5e20cc04 Modified: /library/undoc.rst ======================================= --- /library/undoc.rst Thu Sep 30 08:07:32 2010 +++ /library/undoc.rst Wed Mar 9 06:44:57 2011 @@ -20,8 +20,7 @@ :mod:`ihooks` --- import フックのサポートです (:mod:`rexec` のためのものです; 撤廃され るかもしれません)。 - - .. warning:: :mod:`ihooks` モジュールは Python 3.0 で削除されました。 + Python 3.0 で削除されました。 プラットフォーム固有のモジュール @@ -47,24 +46,22 @@ :mod:`audiodev` --- 音声データを再生するためのプラットフォーム非依存の API です。 - - .. warning:: :mod:`audiodev` モジュールは Python 3.0 で削除されました。 + Python 3.0 で削除されました。 :mod:`linuxaudiodev` - --- Linux 音声デバイスで音声データを再生します。Python 2.3 で は :mod:`ossaudiodev` モジュールと置き換えられました。 - - .. warning:: :mod:`linuxaudiodev` モジュールは Python 3.0 で削除されまし た。 + --- Linux 音声デバイスで音声データを再生します。Python 2.3 では + :mod:`ossaudiodev` モジュールと置き換えられました。 + Python 3.0 で削除されました。 :mod:`sunaudio` - --- Sun 音声データヘッダを解釈します (撤廃されるか、ツール/デモになるか もしれません)。 - - .. warning:: :mod:`sunaudio` モジュールは Python 3.0 で削除されました。 + --- Sun 音声データヘッダを解釈します (撤廃されるか、ツール/デモに + なるかもしれません)。 + Python 3.0 で削除されました。 :mod:`toaiff` - --- "任意の" 音声ファイルを AIFF ファイルに変換します; おそらくツールか デモになるはずです。外部プログラム :program:`sox` - が必要です。 - - .. warning:: :mod:`toaiff` モジュールは Python 3.0 で削除されました。 + --- "任意の" 音声ファイルを AIFF ファイルに変換します; おそらくツールか + デモになるはずです。外部プログラム :program:`sox` が必要です。 + Python 3.0 で削除されました。 .. _undoc-mac-modules: @@ -120,8 +117,8 @@ :deprecated: -:mod:`icopen` をインポートすると、組込み :meth:`open` を新しいファ\ -イル用にファイルタイプおよびクリエーターを設定するために +:mod:`icopen` をインポートすると、組込み :meth:`open` を新しいファイル用に +ファイルタイプおよびクリエーターを設定するために Internet Configを使用するバージョンに置き換えます。 .. deprecated:: 2.6 @@ -238,9 +235,7 @@ :mod:`timing` --- 高い精度で経過時間を計測します (:func:`time.clock` を使ってください )。 - (拡張モジュールです。) - - .. warning:: :mod:`timing` モジュールは Python 3.0 で削除されました。 + Python 3.0 で削除されました。 SGI 固有の拡張モジュール @@ -253,5 +248,4 @@ :mod:`sv` --- SGI Indigo 上の "simple video" ボード(旧式のハードウェアです) へのイ ンタフェースです。 - - .. warning:: :mod:`sv` モジュールは Python 3.0 で削除されました。 + Python 3.0 で削除されました。