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


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

Python が使用可能な環境では、インタープリタは一般的に
"/usr/local/bin/python3.15" にインストールされています。使用している
Unix シェルの検索パスに "/usr/local/bin" を追加すると、次のコマンドを
シェルに入力してインタープリタを起動できます:

   python3.15

[1] インストール先ディレクトリはインストール時に選択できるため、インタ
ープリタが別の場所にある場合もあります。身近な Python に詳しい人やシス
テム管理者に確認してください。(例えば "/usr/local/python" もよく使われ
る場所です。)

Microsoft ストア から Python をインストールした Windows マシンでは、
"python3.15" コマンドが利用できます。 py.exe ランチャ をインストールし
た場合、 "py" コマンドが使えます。 Python を起動する他の方法については
Python インストールマネージャ を参照してください。

ファイル終端文字 (Unix では "Control"-"D" 、Windows では
"Control"-"Z") を一次プロンプトに入力すると、インタープリタは終了ステ
ータス 0 で終了します。この操作で終了できない場合は "quit()" と入力し
てインタープリタを終了できます。

ほとんどのシステムでは対話的な編集、履歴置換、コード補完をインタープリ
タの行編集機能として利用できます。コマンドライン編集が使えるかどうかを
確認するには、Python のプロンプトで単語を入力してから左矢印キー (また
は "Control"-"b") を押すのがおそらく最も手軽です。カーソルが動けばコマ
ンドライン編集を利用できます。キーの使い方については付録の 対話入力編
集と履歴置換 を参照してください。何も起こらないか、 "^[[D" や "^B" の
ような文字列が表示される場合はコマンドライン編集を利用できません。その
場合、現在の行から文字を削除するにはバックスペースを使うしかありません
。

インタープリタは Unix シェルに似た動作をします。標準入力が端末 (tty)
に接続された状態で起動すると、コマンドを対話的に読み込んで実行します。
ファイル名を引数に指定するか、ファイルを標準入力として起動すると、その
ファイルから *スクリプト* を読み込んで実行します。

インタープリタを "python -c command [arg] ..." のように起動する方法も
あります。シェルの "-c" オプションと同じように、この形式では *command*
に指定した文を実行します。Python の文には空白やシェルにとって特殊な意
味を持つ文字が含まれることが多いため、通常は *command* 全体を引用符で
囲むことをお勧めします。

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

スクリプトの実行後にそのまま対話モードに入れると便利なことがあります。
これには "-i" をスクリプトファイル名の前に指定します。

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


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

インタープリタに渡したスクリプト名とその後に続く引数は、文字列のリスト
に変換されて "sys" モジュールの "argv" 変数に代入されます。 "import
sys" を実行するとこのリストにアクセスできます。 リストには少なくとも1
つの要素があります。スクリプト名も引数も指定しない場合は "sys.argv[0]"
が空文字列になります。 スクリプト名の代わりに標準入力を意味する "'-'"
を指定すると、 "sys.argv[0]" は "'-'" になります。 "-c" *command* を使
うと "sys.argv[0]" は "'-c'" になります。 "-m" *module* を使うと
"sys.argv[0]" は見つかったモジュールのフルパスになります。 "-c"
*command* や "-m" *module* の後に指定したオプションは、Python インター
プリタのオプションとしては処理されません。コマンドやモジュールが処理で
きるように "sys.argv" に残されます。


2.1.2. 対話モード
-----------------

端末 (tty) からコマンドを読み込んでいるとき、インタープリタは *対話モ
ード (interactive mode)* で動作しているといいます。 このモードでは *一
次プロンプト (primary prompt)* を表示して次のコマンドの入力を促します
。一次プロンプトは通常、3つの大なり記号 (">>>") です。継続行では *二次
プロンプト (secondary prompt)* を表示します。二次プロンプトはデフォル
トで3つのドット ("...") です。 最初のプロンプトを表示する前に、インタ
ープリタはバージョン番号と著作権表示を含む起動メッセージを出力します:

   $ python3.15
   Python 3.15 (default, May 7 2025, 15:46:04)
   [GCC 10.2.0] on linux
   Type "help", "copyright", "credits" or "license" for more information.
   >>>

複数行にわたる構文を入力するには継続行が必要です。例として次の "if" 文
を見てみましょう:

   >>> the_world_is_flat = True
   >>> 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 でエンコードされている
ものとして扱われます。このエンコーディングでは、文字列リテラル、識別子
、コメントに世界中のほとんどの言語の文字を同時に使えます。ただし、標準
ライブラリの識別子に使われるのは ASCII 文字だけです。移植性が必要なコ
ードもこの慣習に従うべきです。これらの文字をすべて正しく表示するには、
エディタがファイルのエンコーディングを UTF-8 と認識し、ファイル内のす
べての文字に対応したフォントを使う必要があります。

デフォルト以外のエンコーディングを宣言するには、ファイルの *先頭* 行に
特別なコメントを追加します。書式は次のとおりです:

   # -*- coding: encoding -*-

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

例えば Windows-1252 エンコーディングを使うことを宣言するには、ソースコ
ードファイルの先頭行を次のようにします:

   # -*- coding: cp1252 -*-

ソースコードが UNIX "shebang" 行 で始まる場合は、*先頭行* に宣言すると
いうルールの例外です。この場合はファイルの2行目にエンコーディングの宣
言を追加します。例えば次のようにします:

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

-[ 脚注 ]-

[1] 同時にインストールされた Python 2.x の実行ファイルとの衝突を避ける
    ため、Unix では Python 3.x インタープリタの実行ファイルはデフォル
    トで "python" 以外の名前でインストールされます。
