Python チュートリアル
*********************

Python は強力で、学びやすいプログラミング言語です。効率的な高レベルデ
ータ構造と、シンプルで効果的なオブジェクト指向プログラミング機構を備え
ています。 Python は、洗練された文法・動的なデータ型付け・インタープリ
タであることなどから、スクリプティングや高速アプリケーション開発(Rapid
Application Development: RAD)に理想的なプログラミング言語となっていま
す。

Python Web サイト(https://www.python.org) は、 Python インタープリタと
標準ライブラリのソースコードと、主要プラットフォームごとにコンパイル済
みのバイナリファイルを無料で配布しています。また、Python Web サイトに
は、無料のサードパーティモジュールやプログラム、ツール、ドキュメントな
ども紹介しています。

Python インタプリタは、簡単に C/C++ 言語などで実装された関数やデータ型
を組み込み、拡張できます。また、アプリケーションのカスタマイズを行う、
拡張言語としても適しています。

このチュートリアルは、Python 言語の基本的な概念と機能を、形式ばらずに
紹介します。読むだけではなく、Pythonインタープリタで実際にサンプルを実
行すると理解が深まりますが、サンプルはそれぞれ独立していますので、ただ
読むだけでも良いでしょう。

標準オブジェクトやモジュールの詳細は、 Python 標準ライブラリ を参照し
てください。 また、正式な言語定義は、 Python 言語リファレンス にありま
す。 C 言語や C++ 言語で拡張モジュールを書くなら、 Python インタプリタ
の拡張と埋め込み や Python/C API リファレンスマニュアル を参照してくだ
さい。Python の解説書も販売されています。

このチュートリアルは、Python全体を対象とした、包括的な解説書ではありま
せん。よく使われる機能に限っても、全ては紹介していません。その代わり、
このチュートリアルでは、Pythonのもっとも特徴的な機能を中心に紹介して、
この言語の持ち味や、スタイルを感じられるようにしています。このチュート
リアルを読み終えると、Python のモジュールやプログラムを読み書きできる
ようになっているでしょう。また、Python 標準ライブラリ のさまざまな
Python ライブラリモジュールを、詳しく調べられるようになっているはずで
す。

用語集 にも目を通しておくと良いでしょう。

* 1. やる気を高めよう

* 2. Python インタプリタを使う

  * 2.1. インタプリタを起動する

    * 2.1.1. 引数の受け渡し

    * 2.1.2. 対話モード

  * 2.2. インタプリタとその環境

    * 2.2.1. ソースコードの文字コード

* 3. 形式ばらない Python の紹介

  * 3.1. Python を電卓として使う

    * 3.1.1. 数

    * 3.1.2. 文字列型 (string)

    * 3.1.3. リスト型 (list)

  * 3.2. プログラミングへの第一歩

* 4. その他の制御フローツール

  * 4.1. "if" 文

  * 4.2. "for" 文

  * 4.3. "range()" 関数

  * 4.4. "break" 文と "continue" 文とループの "else" 節

  * 4.5. "pass" 文

  * 4.6. 関数を定義する

  * 4.7. 関数定義についてもう少し

    * 4.7.1. デフォルトの引数値

    * 4.7.2. キーワード引数

    * 4.7.3. 特殊なパラメータ

      * 4.7.3.1. 位置またはキーワード引数

      * 4.7.3.2. 位置専用引数

      * 4.7.3.3. キーワード専用引数

      * 4.7.3.4. 関数の例

      * 4.7.3.5. 要約

    * 4.7.4. 任意引数リスト

    * 4.7.5. 引数リストのアンパック

    * 4.7.6. ラムダ式

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

    * 4.7.8. 関数のアノテーション

  * 4.8. 間奏曲: コーディングスタイル

* 5. データ構造

  * 5.1. リスト型についてもう少し

    * 5.1.1. リストをスタックとして使う

    * 5.1.2. リストをキューとして使う

    * 5.1.3. リストの内包表記

    * 5.1.4. ネストしたリストの内包表記

  * 5.2. "del" 文

  * 5.3. タプルとシーケンス

  * 5.4. 集合型

  * 5.5. 辞書型 (dictionary)

  * 5.6. ループのテクニック

  * 5.7. 条件についてもう少し

  * 5.8. シーケンスとその他の型の比較

* 6. モジュール

  * 6.1. モジュールについてもうすこし

    * 6.1.1. モジュールをスクリプトとして実行する

    * 6.1.2. モジュール検索パス

    * 6.1.3. "コンパイル" された Python ファイル

  * 6.2. 標準モジュール

  * 6.3. "dir()" 関数

  * 6.4. パッケージ

    * 6.4.1. パッケージから * を import する

    * 6.4.2. パッケージ内参照

    * 6.4.3. 複数ディレクトリ中のパッケージ

* 7. 入力と出力

  * 7.1. 出力を見やすくフォーマットする

    * 7.1.1. フォーマット済み文字列リテラル

    * 7.1.2. 文字列の format() メソッド

    * 7.1.3. 文字列の手作業でのフォーマット

    * 7.1.4. 古い文字列書式設定方法

  * 7.2. ファイルを読み書きする

    * 7.2.1. ファイルオブジェクトのメソッド

    * 7.2.2. "json" による構造化されたデータの保存

* 8. エラーと例外

  * 8.1. 構文エラー

  * 8.2. 例外

  * 8.3. 例外を処理する

  * 8.4. 例外を送出する

  * 8.5. ユーザー定義例外

  * 8.6. クリーンアップ動作を定義する

  * 8.7. 定義済みクリーンアップ処理

* 9. クラス

  * 9.1. 名前とオブジェクトについて

  * 9.2. Python のスコープと名前空間

    * 9.2.1. スコープと名前空間の例

  * 9.3. クラス初見

    * 9.3.1. クラス定義の構文

    * 9.3.2. クラスオブジェクト

    * 9.3.3. インスタンスオブジェクト

    * 9.3.4. メソッドオブジェクト

    * 9.3.5. クラスとインスタンス変数

  * 9.4. いろいろな注意点

  * 9.5. 継承

    * 9.5.1. 多重継承

  * 9.6. プライベート変数

  * 9.7. 残りのはしばし

  * 9.8. イテレータ (iterator)

  * 9.9. ジェネレータ (generator)

  * 9.10. ジェネレータ式

* 10. 標準ライブラリミニツアー

  * 10.1. OSへのインタフェース

  * 10.2. ファイルのワイルドカード表記

  * 10.3. コマンドライン引数

  * 10.4. エラー出力のリダイレクトとプログラムの終了

  * 10.5. 文字列のパターンマッチング

  * 10.6. 数学

  * 10.7. インターネットへのアクセス

  * 10.8. 日付と時刻

  * 10.9. データ圧縮

  * 10.10. パフォーマンスの計測

  * 10.11. 品質管理

  * 10.12. バッテリー同梱

* 11. 標準ライブラリミニツアー --- その 2

  * 11.1. 出力のフォーマット

  * 11.2. 文字列テンプレート

  * 11.3. バイナリデータレコードの操作

  * 11.4. マルチスレッディング

  * 11.5. ログ記録

  * 11.6. 弱参照

  * 11.7. リスト操作のためのツール

  * 11.8. 10 進浮動小数演算

* 12. 仮想環境とパッケージ

  * 12.1. はじめに

  * 12.2. 仮想環境の作成

  * 12.3. pip を使ったパッケージ管理

* 13. さあ何を？

* 14. 対話入力編集と履歴置換

  * 14.1. タブ補完と履歴編集

  * 14.2. 対話的インタープリタの代替

* 15. 浮動小数点演算、その問題と制限

  * 15.1. 表現エラー

* 16. 付録

  * 16.1. 対話モード

    * 16.1.1. エラー処理

    * 16.1.2. 実行可能な Python スクリプト

    * 16.1.3. 対話モード用の起動時実行ファイル

    * 16.1.4. カスタマイズ用モジュール
