こんにちは。arcadia13です。
本シリーズはPythonについての自分のアウトプット、基礎固めを目的として書いています。
前回は自分がこれまで行ってきたPythonの学習方法を紹介しました。
ここからの内容は Pythonチュートリアル をベースとし、そこから自分なりに追加を行ったものとなります。
第1回目は「Pythonインタプリタの対話モード」についてです。
誤字・脱字だけでなく内容に間違いなどございましたら、お手数をおかけいたしますが、ぜひご指導ご鞭撻のほどよろしくお願いいたします。
実行環境
- Windows11
- Python3.13.3
結論
- Pythonインタプリタの対話モードは気軽にPythonによるコーディングを試せる
対話モード
- Pythonインタプリタのモードの一つで、インタラクティブモードともいう
- インタプリタ上でそのままPythonプログラムを入力・実行できる
- Pythonスクリプトファイル1を作らずともその場でプログラムの確認ができる
- 現在の入力行に対する編集機能や履歴置換機能もサポートしている
対話モード起動
- ターミナルで「python」と入力すると対話モード起動
- 最初にPythonのバージョン情報や動作環境の情報が表示される
- その後は「>>>」の記号が表示され、入力待ち状態になる
- この記号はプライマリプロンプトという
C:\Users\user> python
Python 3.13.3 (tags/v3.13.3:6280bb5, Apr 8 2025, 14:47:33) [MSC v.1943 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
プライマリプロンプト・セカンダリプロンプト
- Pythonには2種類のプロンプトが存在する
名前 | 説明 |
---|---|
プライマリプロンプト(>>>) | ・ユーザーのコマンド入力を促す |
セカンダリプロンプト(・・・) | ・前からの継続行を表す ・Enter2連続で終了(そうしない限り継続行とみなす) |
>>> if True:
... print("Test")
...
Test
>>>
対話モードの終了
- 終了用コマンドを入力する
- quit()
- exit()
- Ctrl+D
- Ctrl+Z
C:\Users\user> python
Python 3.13.3 (tags/v3.13.3:6280bb5, Apr 8 2025, 14:47:33) [MSC v.1943 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> quit()
C:\Users\user>
文字列で受け取ったコードを実行
- ターミナルで「-c」を付けて、続けて文字列としてコードを書くと、すぐに実行することができる
- 「-c」は "command" の頭文字?
- 文字列内での改行は「;(セミコロン)」を使う
# python -c コマンド [引数]
C:\Users\user> python -c "print('test'); print(1)"
test
1
C:\Users\user>
モジュールのソースファイルを実行
- 「python」コマンドに「-m」オプションを付けると、モジュールファイル2を実行できる
- 「-m」は" module" の頭文字?
test.py
print('hello!')
C:\Users\user> python -m test
hello!
C:\Users\user>
※モジュール名を拡張子「.py」まで書くとエラーになる
C:\Users\user> python -m test.py
Error while finding module specification for 'test.py' (ModuleNotFoundError: __path__ attribute not found on 'test' while trying to find 'test.py'). Try using 'test' instead of 'test.py' as the module name.
C:\Users\user>
スクリプトファイル実行から対話モード起動
- 「python」コマンドに「-i」オプションをつけると、スクリプトファイル実行後に対話モードが起動できる
- 「-i」はinterpreterの頭文字?
test.py
num = 5
# スクリプトファイル起動
C:\Users\user> python -i test.py
# 対話モード起動
>>> num + 5
10
>>>
編集機能
- 現在の入力行に対して編集を行うことができる
# 末尾移動
Ctrl + E
# カーソルを一つ前に移動
Ctrl + B
# 順方向へ向かって行の残りを削除
Ctrl + K
# ヒストリ置換
# Ctrl + P で過去履歴に一つ巻き戻る
# Ctrl + N で一つ現在へ進む
Ctrl + P/N
引数の受け渡し
- 標準モジュール「sys」を使用
- リスト「sys.argv」の中にコマンドライン引数が渡される
sample.py
import sys
print(sys.argv)
C:\Users\user> python .\sample.py one two three
['.\\sample.py', 'one', 'two', 'three']
C:\Users\user>
タブ補完
- Python の文の名前、現在のローカル変数、利用可能なモジュール名を検索して補完してくれる機能
- 対話モード(正確にはインタプリタ)起動時に自動的に有効化される
- この機能は Tab キーで呼び出す
- ドットで区切られた式は最後の '.' までの式を評価し、結果として得られたオブジェクトの属性から補完候補を示す
- 例:string.name
- 「__getattr__()」 メソッドを持つオブジェクトが式に含まれている場合、このメソッドがアプリケーション定義のコードを実行する可能性あり
対話モードの代替手段
- IPython
- 対話型インタプリタの代替手段の一つ
- タブ補完、オブジェクト探索、履歴管理といった機能を持つ
- Jupyter Labで簡単にIPythonを体験できる
- bpython
- IPythonとは異なるインタラクティブ環境
- イメージは「すごく頭のいい対話モード」
まとめ
Pythonインタプリタの対話モードについてまとめました。
終わりに
過去にMATLABというプログラミング言語の初心者向け記事を執筆していたことがあります。
MATLABにも対話モードに該当するものがありました。
確かに気軽にプログラムを書きたいなと思った時には便利な存在でした。
慣れてくると短いコードを書くためだけにわざわざファイルを作るのは面倒ですからね。
書くまでの心理的ハードルを下げてくれるという意味では非常にありがたい存在です。
ぜひ積極的に使ってみてください。
今回は以上です。