#
1 Python への意欲を高める

巨大なシェルスクリプトを書いたことがあるなら、 「もう一つ機能を追加したいのだけれど、プログラムはすでに遅くなりすぎて いるし、巨大すぎるし、複雑すぎる ...」、あるいは 「追加したい機能 にはシステムコールか、 C 言語からしかアクセスできない別の関数が必要 だ ...」 といった気持ちを理解できるでしょう。

身近な課題というのはたいてい、スクリプトを C 言語で書き直すほど大した ことではありません; そしてその課題にはおそらく可変長の文字列や (ファイル名をソートしたリストのような) 他のデータ型 が必要で、 これはシェルスクリプトで実装するのは簡単だが C 言語でやるのは大仕事に なるし、もしかするとあなた自身はそれほど C 言語に詳しくはないかも しれません。

別の状況として、「おそらくいくつかの C 言語のライブラリを使って 仕事をしなければならないのだけれど、C 言語でお決まりの、プログラム 作成／コンパイル／テスト／再コンパイルのサイクルは時間がかかりすぎる。 もっと早くプログラムを開発したい」、あるいは、「機能拡張のための 言語を使えるようなプログラムを書いたのだけれど、新しく言語を設計して、 その言語のためのインタプリタを実装して、テストして、自分の アプリケーションと連動させるまではやりたくない」といったことも あるでしょう。

これらのケースでは、Python はまさにあなたにぴったりの言語です。 Python は使い方は単純ですが、シェルスクリプトよりも多くのデータ 構造を扱うことができ、大規模なプログラムを行うためのサポートを 持った本物のプログラム言語です。一方で、 Python は C 言語よりも はるかに多くのエラーチェック機構を提供しています。また、 超高水準 (very-high-level) のプログラム言語で、柔軟性のある シーケンスや辞書といった高水準データ型が組み込まれています。これらの型を 効率よく処理するための実装を C 言語でやろうとすると数日がかりに なってしまうでしょう。比較的汎用性の高いデータ型を持つため、 Python は Awk や Perl さえはるかにしのぐ広い領域の 問題に適用することができます。その上、Python でやれば、多くの 仕事は上述の言語と少なくとも同じくらいに簡単にこなせます。

Python ではプログラムをモジュールに分割して他の Python プログラムで 再利用することができます。Python には膨大な標準モジュールが付属 していて、プログラムを作る上での基盤として -- あるいは Python プログラミングを学ぶために -- 利用することができます。組み込み モジュールではまた、ファイル I/O 、システムコール、ソケットといった 機能や、Tk のようなグラフィカルユーザインタフェースツールキットを使う ためのインタフェースさえも提供しています。

Python はインタプリタ言語です。このため、コンパイルやリンクが必要 ないので、プログラムを開発する際にかなりの時間を節約できます。 インタプリタは対話的に利用することもできます。対話的インタプリタの 利用によって、この言語の様々な機能について実験してみたり、やっつけ仕事 のプログラムを書いたり、ボトムアップでプログラムを開発する際に 関数をテストしたりといったことが簡単にできます。便利な電卓にもなります。

Python では、とてもコンパクトで読みやすいプログラムを書くことができます。 Python で書かれたプログラムは大抵、同じ機能を提供する C 言語や C++ 言語のプログラムよりもはるかに短くなります。これには以下のようないくつか の理由があります:

- 高レベルのデータ型によって、複雑な操作を一つの実行文で表現することが できます;
- 実行文のグループ化はグループの開始や終了の括弧を使う代わりに インデントで行うことができます;
- 変数や引数の宣言が不要になります。

Python は 拡張する ことができます: C 言語でプログラムを書く方法 を知っているなら、新たな組み込み関数やモジュールをインタプリタに追加 することは簡単です。これによって、処理速度を決定的に左右する操作を 最大速度で動作するように実現したり、(ベンダ特有のグラフィクスライブラリ のように) バイナリ形式でしか手に入らないライブラリを Python にリンク したりできます。その気になれば、Python インタプリタを C で書かれた アプリケーションにリンクして、アプリケーションに対する拡張言語や 命令言語として使うこともできます。

ところで、この言語は BBC のショー番組、``モンティパイソンの空飛ぶ サーカス (Monty Python's Flying Circus)'' から取ったもので、 気味の悪い爬虫類とは関係ありません。このドキュメントにある モンティパイソンの寸劇を参照するのは、よいどころか、むしろ 奨励されています！

#
1 ここからどこへ

さて、皆さんはもう Python にとてもそそられて、もうちょっと詳しく 調べてみたくなったはずです。プログラミング言語を習得する最良の 方法は使ってみることですから、ここでやってみましょう。

次の章では、まずインタプリタを使うための機微を説明します。これはさして 面白みのない情報なのですが、後に説明する例題を試してみる上で 不可欠なことです。

チュートリアルの残りの部分では、Python プログラム言語と実行システム の様々な機能を例題を交えて紹介します。単純な式、実行文、データ型から 始めて、関数とモジュールを経て、最後には例外処理やユーザ定義クラス といったやや高度な概念にも触れます。