1. やる気を高めよう
*******************

コンピュータでさまざまな作業をしていると、いずれ自動化したい作業が出て
くるでしょう。例えば、多数のテキストファイルをまとめて検索・置換したり
、大量の写真ファイルの名前や配置を複雑な手順で変更したりする作業です。
用途に合わせた小さなデータベースや専用の GUI アプリケーション、簡単な
ゲームを作りたくなることもあるでしょう。

ソフトウェア開発の仕事で複数の C/C++/Java ライブラリを使っていると、コ
ードの作成・コンパイル・テスト・再コンパイルという一連の作業に時間がか
かりすぎると感じるかもしれません。そうしたライブラリのテストスイートを
書いていて、テストコードの作成が面倒だと感じることもあるでしょう。ある
いは、作成したプログラムに拡張言語を導入したくても、そのためだけにまっ
たく新しい言語を設計・実装したくはないかもしれません。

Python はそんなあなたにぴったりの言語です。

こうした作業の一部は Unix シェルスクリプトや Windows バッチファイルで
処理できます。シェルスクリプトはファイルの移動やテキストデータの変更が
得意です。しかし、GUI アプリケーションやゲームにはあまり向いていません
。C/C++/Java でプログラムを書くこともできますが、最初の試作品を作るだ
けでもかなりの開発時間がかかることがあります。Python はもっと手軽に使
え、Windows、macOS、Unix で動作します。作業をより早く終える助けになる
でしょう。

Python は手軽に使える一方で、本格的なプログラミング言語でもあります。
シェルスクリプトやバッチファイルに比べ、プログラムを構造化する仕組みや
大規模なプログラムの開発を支える機能が充実しています。また、C よりも多
くのエラーチェックを行います。*超高水準言語* である Python には、柔軟
な配列や辞書といった高レベルのデータ型が組み込まれています。汎用性の高
いデータ型を備えているため、Awk や Perl よりも幅広い問題に対応できます
。それでいて、多くの処理はこれらの言語に劣らず簡単に書けます。

Python ではプログラムをモジュールに分割し、他の Python プログラムで再
利用できます。豊富な標準モジュールも付属しており、プログラムを作る際の
土台としても、Python プログラミングを学び始める際の例としても利用でき
ます。ファイル I/O、システムコール、ソケットなどの機能や、Tk のような
GUI ツールキットへのインターフェースを提供するモジュールもあります。

Python はインタープリタ言語です。コンパイルやリンクが不要なので、プロ
グラム開発の時間を大幅に節約できます。インタープリタは対話的にも使える
ため、言語の機能を試したり、書き捨てのプログラムを書いたり、ボトムアッ
プでのプログラム開発中に関数をテストしたりするのも簡単です。手軽な卓上
電卓としても使えます。

Python ではコンパクトで読みやすいプログラムを書けます。Python のプログ
ラムは通常、同じ処理を行う C/C++/Java のプログラムよりもずっと短くなり
ます。その理由は次のとおりです:

* 高レベルのデータ型を使えば複雑な操作を1つの文で表現できます。

* 文は開始と終了を表す括弧ではなくインデントでまとめます。

* 変数や引数の宣言が不要です。

Python には *拡張性* があります。C でプログラムを書く方法を知っていれ
ば、新しい組み込み関数やモジュールをインタープリタに簡単に追加できます
。これにより、重要な処理を最大限に高速化したり、ベンダー独自のグラフィ
ックスライブラリのようにバイナリ形式でしか提供されていないライブラリを
Python プログラムにリンクしたりできます。Python にすっかり夢中になった
ら、C で書かれたアプリケーションに Python インタープリタをリンクし、そ
のアプリケーションの拡張言語や命令言語として使うこともできます。

ちなみに Python という名前は BBC の番組「Monty Python's Flying Circus
」に由来し、爬虫類とは関係ありません。ドキュメントでモンティ・パイソン
の寸劇に触れることは、許されているだけでなく推奨されています！

Python に興味が湧いてきて、もっと詳しく知りたくなったのではないでしょ
うか。言語を学ぶには実際に使ってみるのが一番です。このチュートリアルを
読みながら Python インタープリタでいろいろ試してみてください。

次の章ではインタープリタの使い方を説明します。地味な内容ですが、この先
に出てくる例を試すために欠かせません。

以降の章では Python 言語とシステムのさまざまな機能を例とともに紹介しま
す。簡単な式や文、データ型から始めて関数やモジュールへと進み、最後には
例外やユーザー定義クラスといった高度な概念にも触れます。
