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

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

Python インタプリタは、それが使えるマシン上では通常 `/usr/local/bin/python` としてインストールされています; Unix シェルの検索パスに `/usr/local/bin` を入れることによって、次のコマンドをタイプしてインタプリタを開始することができます

    python

とコマンドを入力すれば使えるようになります。どのディレクトリに Python インタプリタをインストールするかはインストール時に選択できるので、インタプリタは他のディレクトリにあるかもしれません; 身近な Python に詳しい人か、システム管理者に聞いてみてください。 (例えば、その他の場所としては `/usr/local/python` が一般的です。)

Windows では、 Python は大抵の場合 `C:\Python27` にインストールされますが、インストーラ実行時に変更することができます。このディレクトリをあなたのパスに追加するには、以下のコマンドをコマンドプロンプトで実行してください。

    set path=%path%;C:\python27

ファイル終端文字 (Unixでは `Control-D` 、DOS や Windows では `Control-Z`) を一次プロンプト (訳注: '>>>' のこと) に入力すると、インタプリタが終了ステータス 0 で終了します。もしこの操作がうまく働かないなら、コマンド: `quit()` と入力すればインタプリタを終了できます。

通常、インタプリタの行編集機能は、あまり洗練されたものではありません。 Unix では、インタプリタをインストールした誰かが GNU readline ライブラリのサポートを有効にしていれば、洗練された対話的行編集やヒストリ機能が利用できます。コマンドライン編集機能がサポートされているかを最も手っ取り早く調べる方法は、おそらく最初に表示された Python プロンプトに `Control-P` を入力してみることでしょう。ビープ音が鳴るなら、コマンドライン編集機能があります。編集キーについての解説は付録 対話入力編集とヒストリ置換 を参照してください。何も起こらないように見えるか、 `^P` がエコーバックされるなら、コマンドライン編集機能は利用できません。この場合、現在編集中の行から文字を削除するにはバックスペースを使うしかありません。

インタプリタはさながら Unix シェルのように働きます。標準入力が端末に接続された状態で呼び出されると、コマンドを対話的に読み込んで実行します。ファイル名を引数にしたり、標準入力からファイルを入力すると、インタプリタはファイルから スクリプト を読み込んで実行します。

インタプリタを起動する第二の方法は `python -c command [arg] ...` です。この形式では、シェルの `-c` オプションと同じように、 command に指定した文を実行します。 Python 文には、スペースなどのシェルにとって特殊な意味をもつ文字がしばしば含まれるので、 command 全体をシングルクォート(訳注: `'`)で囲っておいたほうが良いでしょう。

Python のモジュールには、スクリプトとしても便利に使えるものがあります。 `python -m module [arg] ...` のようにすると、 module のソースファイルを、フルパスを指定して起動したかのように実行できます。

スクリプトファイルが使われた場合、スクリプトを走らせて、そのまま対話モードに入れると便利なことがあります。これには `-i` をスクリプトの前に追加します。

全てのコマンドラインオプションは コマンドラインと環境 で説明されています。

### 2.1.1. 引数の受け渡し

スクリプト名と引数を指定してインタプリタを起動した場合、スクリプト名やスクリプト名以後に指定した引数は、文字列のリストに変換されて `sys` モジュールの `argv` 変数に格納されます。 `import sys` することでこのリストにアクセスすることができます。 `sys.argv` には少なくとも一つ要素が入っています。スクリプト名も引数も指定しなければ `sys.argv[0]` は空の文字列になります。スクリプト名の代わりに `'-'` (標準入力を意味します) を指定すると、 `sys.argv[0]` は `'-'` になります。 `-c` command を使うと、 `sys.argv[0]` は `'-c'` になります。 `-m` module を使った場合、 `sys.argv[0]` はモジュールのフルパスになります。 `-c` command や `-m` module の後ろにオプションを指定した場合、 Python インタプリタ自体はこれらの引数を処理せず、 `sys.argv` を介して command や module から扱えるようになります。

### 2.1.2. 対話モード

インタプリタが命令を端末 (tty) やコマンドプロンプトから読み取っている場合、インタプリタは 対話モード (interactive mode) で動作しているといいます。このモードでは、インタプリタは 一次プロンプト (primary prompt) を表示して、ユーザにコマンドを入力するよう促します。一次プロンプトは普通、三つの「大なり記号」 (`>>>`) です。一つの入力が次の行まで続く (行継続: continuation line を行う) 場合、インタプリタは 二次プロンプト (secondary prompt) を表示します。二次プロンプトは、デフォルトでは三つのドット (`...`) です。インタプリタは、最初のプロンプトを出す前にバージョン番号と著作権表示から始まる起動メッセージを出力します:

    python
    Python 2.7 (#1, Feb 28 2010, 00:02:06)
    Type "help", "copyright", "credits" or "license" for more information.
    >>>

行継続は、例えば以下の `if` 文のように、複数の行からなる構文を入力するときに必要です:

    >>> the_world_is_flat = 1
    >>> if the_world_is_flat:
    ...     print "Be careful not to fall off!"
    ...
    Be careful not to fall off!

対話モードについての詳細は 対話モード を参照してください。

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

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

デフォルトでは、Python のソースコードは UTF-8 でエンコードされているものとして扱われます。 デフォルトエンコーディング以外のエンコーディングを使用するには、ファイルの 先頭 の行に特別なコメントを追加しなければなりません。 書式は以下の通りです:

    # -*- coding: encoding -*-

encoding には、Python が `codecs` でサポートしている有効なエンコーディングを指定します。

例えば、Windows-1252 エンコーディングを使用するには、ソースコードファイルの先頭行は下記のとおりとなります:

    # -*- coding: cp1252 -*-

先頭行 のルールは、UNIX "shebang" line でソースコードが始まる場合には当てはまりません。 この場合には、エンコーディングの宣言はファイルの２行目に追加します。 例えば以下のようになります:

    #!/usr/bin/env python
    # -*- coding: cp1252 -*-