Pythonインタラクティブコンソールの使用方法

前書き

Pythonインタラクティブコンソール(PythonインタープリターまたはPythonシェルとも呼ばれます)は、ファイルを作成せずにコマンドを実行し、コードを試すまたはテストするための迅速な方法をプログラマーに提供します。

Pythonのすべての組み込み関数、インストールされているモジュール、コマンド履歴、およびオートコンプリートへのアクセスを提供するインタラクティブコンソールは、Pythonを探索する機会を提供し、準備ができたらプログラミングファイルにコードを貼り付ける機能を提供します。

このチュートリアルでは、Pythonインタラクティブコンソールの操作方法について説明し、プログラミングツールとして活用します。

対話型コンソールに入る

Pythonインタラクティブコンソールには、Pythonがインストールされている任意のローカルコンピューターまたはサーバーからアクセスできます。

PythonのデフォルトバージョンのPythonインタラクティブコンソールに入力するために通常使用するコマンドは次のとおりです。

python

programming environmentを設定している場合は、最初にその環境に入ると、環境を起動し、その環境にインストールしたPythonとモジュールのバージョンにアクセスできます。

cd environments
. my_env/bin/activate

次に、pythonコマンドを入力します。

python

この場合、PythonのデフォルトバージョンはPython 3.5.2です。これは、コマンドを入力すると出力に表示され、関連する著作権表示と追加情報のために入力できるいくつかのコマンドが表示されます。

OutputPython 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

次のコマンドの主なプロンプトは、3つの大なり記号(>>>)です。

バージョン番号をスペースなしでコマンドに追加することにより、Pythonの特定のバージョンをターゲットにできます。

python2.7
OutputPython 2.7.12 (default, Nov 19 2016, 06:48:10)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

ここで、Python 2.7.12が使用されるという出力を受け取りました。 これがPython2のデフォルトバージョンである場合、コマンドpython2を使用してこのインタラクティブコンソールに入ることができます。

または、次のコマンドでデフォルトのPython 3バージョンを呼び出すことができます。

python3
OutputPython 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

コマンドpython3.5を使用して、上記の対話型コンソールを呼び出すこともできます。

Pythonインタラクティブコンソールを実行すると、Pythonのシェル環境での作業に移ることができます。

Pythonインタラクティブコンソールの使用

Pythonインタラクティブインタープリターは、>>>プレフィックスの後に配置するPython構文を受け入れます。

たとえば、variablesに値を割り当てることができます。

birth_year = 1868

1868の整数値を変数birth_yearに割り当てたら、returnキーを押して、接頭辞として3つの大なり記号が付いた新しい行を受け取ります。

birth_year = 1868

引き続き変数を割り当て、次にperform math with operatorsを割り当てて、計算を返すことができます。

>>> birth_year = 1868
>>> death_year = 1921
>>> age_at_death = death_year - birth_year
>>> print(age_at_death)
53
>>>

ファイル内のスクリプトの場合と同様に、変数を割り当て、一方の変数を他方から減算し、差を表す変数を印刷するようコンソールに要求しました。

Pythonのすべての形式と同様に、インタラクティブコンソールを計算機として使用することもできます。

>>> 203 / 20
10.15
>>>

ここでは、整数20320で除算し、10.15の商を返しました。

複数行

複数行をカバーするPythonコードを記述している場合、インタープリターは継続行の2番目のプロンプトである3つのドット(...)を使用します。

これらの継続行から抜け出すには、ENTERを2回押す必要があります。

2つの変数を割り当て、conditional statementを使用してコンソールに出力する内容を決定する次のコードで、これがどのように見えるかを確認できます。

>>> sammy = 'Sammy'
>>> shark = 'Shark'
>>> if len(sammy) > len(shark):
...     print('Sammy codes in Java.')
... else:
...     print('Sammy codes in Python.')
...
Sammy codes in Python.
>>>

この場合、2つのstringsの長さが等しいため、elseステートメントが出力されます。
4つの空白のPythonインデント規則を維持する必要があることに注意してください。そうしないと、エラー:

>>> if len(sammy) > len(shark):
... print('Sammy codes in Java.')
  File "", line 2
    print('Sammy codes in Java.')
        ^
IndentationError: expected an indented block
>>>

Pythonコンソールの複数の行にわたってコードを試すことができるだけでなく、モジュールをインポートすることもできます。

モジュールのインポート

Pythonインタープリターを使用すると、特定のプログラミング環境でモジュールが使用可能かどうかを簡単に確認できます。 これは、importステートメントを使用して実行できます。

>>> import matplotlib
Traceback (most recent call last):
  File "", line 1, in 
ImportError: No module named 'matplotlib'

上記の場合、モジュールmatplotlibは現在のプログラミング環境では使用できませんでした。

これをインストールするには、インタラクティブインタープリターを終了し、通常どおりpipでインストールする必要があります。

pip install matplotlib
OutputCollecting matplotlib
  Downloading matplotlib-2.0.2-cp35-cp35m-manylinux1_x86_64.whl (14.6MB)
...
Installing collected packages: pyparsing, cycler, python-dateutil, numpy, pytz, matplotlib
Successfully installed cycler-0.10.0 matplotlib-2.0.2 numpy-1.13.0 pyparsing-2.2.0 python-dateutil-2.6.0 pytz-2017.2

matplotlibモジュールとその依存関係が正常にインストールされたら、インタラクティブインタープリターに戻ることができます。

python
import matplotlib

この時点では、エラーメッセージは表示されず、シェルまたはファイル内でインストールされたモジュールを使用できます。

Python Interactive Consoleを離れる

Pythonインタラクティブコンソールを終了するには、キーボードショートカットまたはPython関数の2つの主な方法があります。

* nixベースのシステムのキーボードショートカットCTRL +DまたはCTRL +Zの場合、WindowsシステムのCTRLキーはコンソールを中断し、元の端末環境へ:

...
>>> age_at_death = death_year - birth_year
>>> print(age_at_death)
53
>>>
[email protected]:~/environments$

または、Python関数quit()はインタラクティブコンソールを終了し、以前の元のターミナル環境に戻ります。

>>> octopus = 'Ollie'
>>> quit()
[email protected]:~/environments$

関数quit()を使用すると、履歴ファイルに表示されますが、キーボードショートカットCTRL +Dは記録されません。

ファイル:/home/sammy/.python_history

...
age_at_death = death_year - birth_year
print(age_at_death)
octopus = 'Ollie'
quit()

Pythonインタープリターを終了する方法は、ワークフローと履歴のニーズに応じて、どちらの方法でも可能です。

履歴にアクセスする

Pythonインタラクティブコンソールの便利な点の1つは、すべてのコマンドが* nixベースのシステムの.python_historyファイルに記録されることです。これは、たとえば、nanoなどのテキストエディターで確認できます。

nano ~/.python_history

テキストエディタで開くと、Python履歴ファイルは次のようになり、独自のPythonコマンド履歴が表示されます。

ファイル:/home/sammy/.python_history

import pygame
quit()
if 10 > 5:
    print("hello, world")
else:
    print("nope")
sammy = 'Sammy'
shark = 'Shark'
...

ファイルの処理が完了したら、CTRL +Xを押してnanoを終了できます。

すべてのPython履歴を追跡することで、以前のコマンドと実験に戻り、PythonプログラミングファイルまたはJupyter Notebookで使用するために、そのコードをコピーして貼り付けるか、変更できます。

結論

Pythonインタラクティブコンソールは、Pythonコードを試すスペースを提供します。 テスト、ロジックの実行などのツールとして使用できます。

Pythonプログラミングファイルのデバッグで使用するには、Pythoncodeモジュールを使用して、ファイル内でインタラクティブなインタープリターを開くことができます。これについては、ガイドHow To Debug Python with an Interactive Consoleで確認できます。