2. Python インタプリタを使う¶
2.1. インタプリタを起動する¶
Python インタプリタは、通常 /usr/local/bin/python3.6
にインストールされます。Unix シェルの検索パスに /usr/local/bin
が含まれていれば、次のコマンドをタイプしてインタプリタを開始できます。:
python3.6
1 どのディレクトリに Python インタプリタをインストールするかはインストール時に選択できるので、インタプリタは他のディレクトリにあるかもしれません; 身近な Python に詳しい人か、システム管理者に聞いてみてください。 (例えば、その他の場所としては /usr/local/python
が一般的です。)
Windows では、 Python のデフォルトでは C:\Python36
にインストールされますが、別のディレクトリも指定できます。このディレクトリを検索パスに追加するには、以下のコマンドをコマンドプロンプトで実行してください。
set path=%path%;C:\python36
ファイル終端文字 (Unixでは Control-D 、DOS や Windows では Control-Z) を一次プロンプト (訳注: '>>>' のこと) に入力すると、インタプリタが終了ステータス 0 で終了します。もしこの操作がうまく働かないなら、コマンド: quit()
と入力すればインタプリタを終了できます。
readline をサポートしているシステム上では、対話的行編集やヒストリ置換、コード補完のインタプリタの行編集機能が利用できます。コマンドライン編集機能がサポートされているかを最も手っ取り早く調べる方法は、おそらく最初に表示された Python プロンプトに Control-P を入力してみることでしょう。ビープ音が鳴るなら、コマンドライン編集機能があります。編集キーについての解説は付録 対話入力編集と履歴置換 を参照してください。何も起こらないように見えるか、 ^P
がエコーバックされるなら、コマンドライン編集機能は利用できません。この場合、現在編集中の行から文字を削除するにはバックスペースを使うしかありません。
インタプリタは Unix シェルと同じように使えます。標準入力が端末に接続された状態では、コマンドを対話的に読み込んで実行します。ファイル名を引数に指定するか、python3 < filename
のように標準入力ファイルとして指定すると、インタプリタはファイルから スクリプト を読み込んで実行します。
インタプリタを python -c command [arg] ...
のように起動する方法もあります。この形式では、シェルの -c
オプションと同じように、 command に指定した文を実行します。 Python 文には、スペースなどのシェルにとって特殊な意味をもつ文字がしばしば含まれるので、 command 全体をシングルクォート(訳注: '
)で囲っておいたほうが良いでしょう。
Python のモジュールには、スクリプトとしても便利に使えるものがあります。 python -m module [arg] ...
のように起動すると、 module のソースファイルを、フルパスを指定して起動したかのように実行できます。
スクリプトファイルを使用する場合、スクリプトの実行が完了した後、そのまま対話モードに入れると便利なことがあります。これには -i
をスクリプト名の前に追加します。
全てのコマンドラインオプションは コマンドラインと環境 で説明されています。
2.1.1. 引数の受け渡し¶
スクリプト名と引数を指定してインタプリタを起動した場合、スクリプト名やスクリプト名以後に指定した引数は、文字列のリストに変換されて sys
モジュールの argv
変数に格納されます。 import sys
とすることでこのリストにアクセスすることができます。
2.1.2. 対話モード¶
インタプリタが命令を端末 (tty) やコマンドプロンプトから読み取っている場合、インタプリタは 対話モード (interactive mode) で動作しているといいます。
$ python3.6
Python 3.6 (default, Sep 16 2015, 09:25:04)
[GCC 4.8.2] 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 でエンコードされているものとして扱われます。UTF-8 では、世界中のほとんどの言語の文字を同時に文字列リテラルや識別子やコメント中に書くことができます。--- ただし、標準ライブラリは識別子に ASCII 文字のみを利用していて、その他のポータブルなコードもその慣習に従うべきです。それらの文字を正しく表示するためには、エディターはそのファイルが UTF-8 である事を識別して、そのファイルに含まれている文字を全てサポートしたフォントを使わなければなりません。
デフォルトエンコーディング以外のエンコーディングを使用するには、ファイルの 先頭 の行に特別なコメントを追加しなければなりません。書式は以下の通りです:
# -*- coding: encoding -*-
encoding には、Python が codecs
でサポートしている有効なエンコーディングを指定します。
例えば、Windows-1252 エンコーディングを使用するには、ソースコードファイルの先頭行は下記のようにします:
# -*- coding: cp1252 -*-
ソースコードが UNIX "shebang" 行 で始まる場合には、先頭行 のルールは当てはまりません。 この場合には、エンコーディングの宣言はファイルの2行目に追加します。 例えば以下のようになります:
#!/usr/bin/env python3
# -*- coding: cp1252 -*-
脚注
- 1
Unixでは、Python 3.x インタープリタの実行ファイルはデフォルトでは
python
という名前ではインストールされません。同時にインストールされた Python 2.x 実行ファイルと衝突させないためです。