Pythonの2種類の実行モード
Pythonの実行方法にはインタラクティブモードとスクリプトモードの2種類があります。どちらのモードもPythonのインタプリタ(後述)を使って実行する点は同じですが、そのインタプリタの使い方が異なります。
なお、インタプリタとは、ソースコードを1行ずつ実行するプログラム(=インストールしたPython)のことを指します。Pythonにおいては「インタプリタを使う」というのは「Pythonでプログラムを動かす」という意味と大体同じです。
<インタラクティブモード>
インタラクティブモードは1行入力するたびに実行して結果を返す仕組みのため簡単なコードを実行する場合に利用します。
<スクリプトモード>
スクリプトモードはtest.pyのようにPythonのプログラムが書かれたスクリプトファイル(ソースコードが書かれたファイル)の内容を実行する場合に利用します。
多くの場合はスクリプトモードで実行することになります。一般的にはプログラムの量が1行で終わることはほとんどないため、スクリプトファイルを書いてそれを実行するスクリプトモードを利用します。
インタラクティブモードとスクリプトモードはそれぞれ特徴が異なります。
インタラクティブモード
インタラクティブモードとは
インタラクティブモードは対話モードとも言われます。これは1行入力して「これはどうなる?」とPythonに聞くと、「こうなるよ」とPythonが答えることで対話が成立しているように見えることからそう呼ばれます。
実行するとすぐに結果が分かるため、プログラムの一部分の動きを確認したい場合に利用できるという長所がありますが、インタラクティブモードを終了するとそれまで書いたコードは記録されず保存されない欠点があります。
以下はコマンドプロンプトでインタラクティブモードでの「入力してその結果の出力」を2回行った例です。
対話での問い合わせと返答 | インタラクティブモードでの入力と結果 |
Pythonを起動。 | PS >Python3 |
abcと表示して。 | >>>print(‘abc’) |
abcを表示したよ。 | abc |
abcのうちの3番目の文字を表示して。 | >>>print(‘abc'[2]) |
cを表示したよ。 | c |
このように入力したコードをインタプリタが解釈してその結果を出力するのが、インタラクティブモードです。詳細は以下になります。
コマンド入力アプリを起動する(PowerShell、ターミナル等)
Pythonのコードをインタラクティブモードで入力するにはMacOSの場合はターミナルを利用し、Windowsの場合はコマンドプロンプトかPowerShellのどちらかを利用します。
ターミナルは「アプリケーション→ユーティリティ→ターミナル」を開きます。コマンドプロンプトとPowerShellはスタートメニューの検索で「cmd」や「powershell」と入力すると候補が表示されるのでそれを開きます。
ターミナル、コマンドプロンプト、PowerShellのどれも見た目は大体同じです。ここではPowerShellで説明します。
Pythonシェルの起動とコードの実行
入力アプリ(ここではPowerShell)を起動後に半角文字で「python」と入力してEnterを押します。Macの場合は「python3」を入力します。
Pythonのバージョンが表示され、次の行に入力待ちを示す「>>>」が表示されます。「>>>」のあとに続けてコードを入力してEnterを押すとコードが実行されます。
コードの文法に誤りがある場合はエラーメッセージが表示されます。
1 2 3 4 |
>>> pprint('abc') Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'pprint' is not defined |
このコードはprintをpprintと間違えて入力して実行しているため、エラーが発生しています。
2行目の「line 1」がエラーの行番号を表し、3行目のシングルクォーテーションの部分がエラー箇所を表します。
インタラクティブモードの終了
インタラクティブモードを終了する場合は「exit()」か「quit()」のどちらかを入力してEnterを押します。
その後、Pythonを起動する前と同じ状態のコマンドの入力受付状態になります。
インタラクティブモードの用途
インタラクティブモードの主な用途は、スクリプトファイルに書かれているコードの一部分の動きを確認する場合が多いです。
関数の使い方を調べたい場合などにも利用できます。
スクリプトモードとは
スクリプトモードはプログラムのコードを書いたファイルを読み込んで実行します。Pythonのプログラムを書いたファイルは厳密な言い方はなく、一般的には「ソースファイル」や「ソースコード」などと呼ばれます。書籍などでは「スクリプトファイル」と書いてあることもあります。ここでは「ソースファイル」とします。
Pythonのソースファイルは拡張子が「.py」になります。
Pythonのソースファイル
ここでは以下のように1行だけコードが書いてあるソースファイルを「test.py」ファイルとして作成します。
1 |
print('abc') |
コマンド入力アプリを起動する(PowerShell、ターミナル等)
スクリプトモードの場合もインタラクティブモードと同様に、コマンド入力を行います。
Pythonのソースファイルをスクリプトモードで実行するにはMacOSの場合はターミナルを利用し、Windowsの場合はコマンドプロンプトかPowerShellのどちらかを利用します。
ターミナルは「アプリケーション→ユーティリティ→ターミナル」を開きます。コマンドプロンプトとPowerShellはスタートメニューの検索で「cmd」や「powershell」と入力すると候補が表示されるのでそれを開きます。
ターミナル、コマンドプロンプト、PowerShellのどれも見た目は大体同じです。ここではPowerShellで説明します。
Pythonのソースファイルの実行
上記で作成した「test.py」を実行するには「Python(またはPython3)」と入力して、半角スペースを入力したあとにPythonのソースファイルへのパスを指定し、Enterキーを押します。
1 |
PS C:\> Python C:\aaa\test.py |
実行が完了すると、実行結果があればそれを出力し、コマンド入力可能状態に戻ります。ここではprint関数の結果が出力されます。
cdコマンドを使ってソースファイルがあるディレクトリにカレントディレクトリを変更していれば、ソースファイルのパスは省略可能です。省略時はファイル名のみでも、カレントディレクトリを示す「.\」(LinuxやMacの場合は「./」)を付けてもどちらでも構いません。
1 2 |
PS C:\> cd C:\aaa PS C:\> Python .\test.py |
コードの文法に誤りがある場合はエラーメッセージが表示されます。スクリプトファイル名とエラーが発生した行番号と、エラーの内容が出力されます。
test.pyに「pprint(‘abc’)」と”print”を間違って”pprint”と書いた場合のエラーが以下になります。
1 2 3 4 5 |
PS V:\kazu\web\pyprg\page\0004_実行方法> Python test.py Traceback (most recent call last): File "test.py", line 1, in <module> pprint('abc') NameError: name 'pprint' is not defined |
エラーが発生した行番号とエラー内容が出力されます。
次にやること
Pythonの実行はほとんどの場合はスクリプトモードで行うため、次に実際のソースファイルの作成することになります。
Pythonのソースファイルの作成にはいくつかのルールがあります。それらを紹介します。