L01 ch02 — REPL で対話実行
テクノロジ系 / L01 hello — Hello World
L01 ch02 — REPL で対話実行
「ファイル保存 → 実行」より速い試行錯誤の道具
ゴール
- REPL (Read-Eval-Print Loop) を起動・終了できる
- 1 行ずつ式を評価して結果を確認できる
- ファイル実行と REPL の使い分けが言える
REPL とは
Read → Eval → Print → Loop
入力した式を その場で評価し、結果を表示し、また入力を待つ 対話型シェル。
uv run python >>> 1 + 1 2 >>> "Hello, " + "FastAPI" 'Hello, FastAPI' >>>
起動と終了
# 起動 (uv プロジェクト配下なら推奨) uv run python # 起動 (素の Python) python # 終了 >>> exit() # または Ctrl+D (macOS/Linux) / Ctrl+Z + Enter (Windows)
>>> がプロンプト。これが出ていれば入力待ち。
式と文の違い
>>> 1 + 1 # 式 → 結果が出る 2 >>> x = 10 # 文 (代入) → 何も出ない >>> x # 式 (変数参照) → 値が出る 10 >>> print(x) # 関数呼び出し → print の出力が出る 10
REPL では 式の結果は自動で表示 される (= print 不要)。
計算機としての REPL
>>> 100 * 1.08 # 消費税込み 108.0 >>> (1 + 2 + 3) / 3 # 平均 2.0 >>> 2 ** 10 # 累乗 1024 >>> 17 % 5 # 余り 2
電卓代わりに常駐させる人も多い。
関数を試す
>>> def square(n): ... return n * n ... >>> square(4) 16 >>> square(10) 100
... は「複文の続き」のプロンプト。インデント込みで入力。
空行で関数定義を確定。
help() と dir()
>>> help(len) # 関数のドキュメント
>>> dir("hello") # str が持つメソッド一覧
['__add__', ..., 'upper', 'zfill']
>>> "hello".upper() # 試す
'HELLO'「これって何ができるんだっけ?」を即確認できる。
REPL とファイル実行の使い分け
| やりたいこと | REPL | ファイル実行 |
|---|---|---|
| 1 行の挙動を確認 | ◎ | △ |
| 関数 1 個だけ試す | ◎ | ○ |
| 何度も再実行する処理 | △ | ◎ |
| import が多い | △ | ◎ |
| 本番コード | × | ◎ |
試行錯誤は REPL、定着したらファイルへ。
drill
drill/ — REPL で式を評価した結果を予想して埋める
拡張課題
- 履歴を辿る: REPL 起動中に
↑キーで前の入力を呼び戻せる - マルチライン編集:
python -m IPython(要uv add ipython) でより快適な REPL に _(アンダースコア): 直前の式の結果が_に入る
>>> 2 + 3 5 >>> _ * 10 50
よくある詰まり
| 症状 | 原因 | 対処 |
|---|---|---|
>>> から抜けられない | exit と打って Enter していない | exit() (括弧必須) or Ctrl+D |
SyntaxError: unexpected EOF | 関数定義の途中で Enter 2 回 | 空行を入れて確定し直す |
... から戻れない | 複文入力中 | 空行で Enter |
| 変数が消えた | REPL を再起動した | REPL の変数はプロセス終了で消える |
次に学ぶ領域
| 領域 | 続けて読む |
|---|---|
| 変数の型 (int / str / bool) | variables/ch01-basic |
| 関数定義 | function/ch01-basic |
| より高機能な REPL | IPython / python -i script.py |
力試ししたい方は クイズ形式の演習(任意) もあります。読むだけでも十分です。