標準のPython対話モードは軽量ですが、補完や着色がシンプルで、調べ物をしながらコードを書くには少し力不足です。
そこで活躍するのがIPythonとbpythonです。
どちらも導入が簡単で、補完、カラー、履歴、タイミング計測など日常の試行錯誤を強力に支援します。
この記事では、初心者の方がすぐに快適に使い始められるよう、使い方を具体的に解説します。
Pythonの対話モードを速くするIPythonとbpythonとは
IPythonとbpythonは、標準のREPL(Read-Eval-Print Loop)をより使いやすくした代替シェルです。
補完やカラー、ヘルプ、履歴の扱いやすさなどを高め、学習から実験、プロトタイピングまでの速度を大幅に上げます。
標準REPLとの違い
標準REPLは最小限の機能で安定していますが、操作の効率化は手作業に委ねられます。
IPythonは豊富なマジックコマンドと強力な履歴機能が特長で、Jupyterの核にもなっています。
bpythonは入力中のリアルタイム補完とドキュメントの自動表示で、とにかく気持ちよく書ける点が魅力です。
初心者にうれしい機能(補完・カラー)
初心者がつまずきやすいのは、関数名や引数を覚えきれないことです。
IPythonとbpythonはTab補完、引数ヒント、シンタックスハイライトで負担を軽減します。
さらに、IPythonはobj?
やobj??
でドキュメントやソースにすぐアクセスでき、bpythonは入力中に下部ペインへヘルプが自動表示されます。
使う場面とメリット
- 動作確認や小さな関数の試作が圧倒的に速くなります。
- エラー原因の切り分けがしやすく、試行回数を増やして学習速度を上げられます。
- タイミング計測や履歴再実行で、「うまくいった手順」を素早く再現できます。
IPythonの使い方
IPythonは機能が豊富で、日常の実験から分析まで幅広く使えます。
迷ったらまずはIPythonというくらい定番です。
インストール(pip)
仮想環境の利用が望ましいですが、ここでは最短のインストール方法だけ紹介します。
# IPythonのインストール
pip install -U ipython
# 省略表示
Successfully installed ipython-8.26.0 prompt-toolkit-3.x ...
起動と終了方法
ターミナルから起動します。
終了はCtrl+D
またはexit()
です。
# 起動
ipython
Python 3.12.x (main, ...)
IPython 8.26.0 -- An enhanced Interactive Python.
In [1]:
終了の例:
# 終了のしかた
exit() # または Ctrl+D
自動補完とヘルプ(docstring)
Tab補完で属性や関数候補を表示し、?
でドキュメント、??
でより詳細を参照します。
# Tab補完とdocstringの例
import math # 数学モジュールを読み込み
math.si # ← ここで Tab を押すと sin, sinh, isinf, isfinite などが候補に
math.sin(1.0) # 値を計算
len? # len関数のヘルプを表示(末尾に ?)
str.upper?? # 実装(可能ならソース付近)まで詳しく(??)
Signature: len(obj, /)
Docstring:
Return the number of items in a container.
Type: builtin_function_or_method
--------------------------------------
Signature: str.upper(self, /)
Docstring:
Return a copy of the string converted to uppercase.
Type: method_descriptor

obj?
は使い勝手がよく、Pythonの組み込み関数やライブラリの使い方をその場で確認できます。
マジックコマンドの基礎(%timeit, %paste)
IPythonの核機能がマジックコマンドです。
特によく使うのが%timeit
と%paste
です。
# %timeitで処理時間を測る例
def squares(n: int):
# リスト内包表記で二乗のリストを作る
return [i * i for i in range(n)]
%timeit squares(10_000) # 実行時間を繰り返し計測して統計を表示
# 出力は環境により異なります
1.12 ms ± 40.8 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
複数行コードをクリップボードから安全に貼り付けるには%paste
(自動実行)か%cpaste
(貼り付け→確認→実行)が便利です。
# 例: クリップボードに次の3行をコピーしておきます:
# def greet(name):
# return f"Hello, {name}!"
# print(greet("IPython"))
%paste # クリップボードの内容を貼り付けて即実行
Hello, IPython
%cpasteは貼り付け内容を確認してから--
で終了し実行できます。
整形が崩れるコードでも安全に投入できます。
履歴操作と直前結果(_)
IPythonは履歴と直前結果の扱いが強力です。
直前結果は_
、2つ前は__
、3つ前は___
で参照できます。
# 直前結果の再利用と履歴の表示
2 + 3
_ * 10 # 直前の結果(5)を利用
%history -n 1-5 # 直近の入力履歴を番号付きで表示
5
50
1: 2 + 3
2: _ * 10
3: %history -n 1-5
入力文字列そのものは_iN
(Nは入力番号)で参照できます。
# 2番目の入力そのもの
_i2
'_ * 10'
%rerun
で特定の履歴番号を再実行、%save
で履歴をファイル保存が可能です。
クリアとリセット(%clear, %reset)
画面をきれいにしたい時と、環境変数をまっさらにしたい時で操作が異なります。
- 画面クリアは
Ctrl+L
または!clear
(Windowsは!cls
)が確実です。 - 変数や関数定義を消すには
%reset
を使います。
# 画面のクリア(表示だけ消す)
!clear # Linux/macOS
# !cls # Windows
# 名前空間のリセット(プロンプト確認をスキップするには -f)
%reset -f
IPythonのバージョンによって%clear
が存在しない場合があります。
その場合はCtrl+L
や!clear
を使ってください。
bpythonの使い方
bpythonはとにかく入力が気持ち良いREPLです。
入力中に候補とドキュメントが自動で現れ、打鍵数が減るので試行錯誤が捗ります。
インストール(pip)
# bpythonのインストール
pip install -U bpython
Successfully installed bpython-0.24.x curtsies-<ver> ...
Windowsで使用したい場合は、WSLの利用を検討してください。
起動と終了方法
bpython
bpython version 0.24.x on top of Python 3.12.x
>>>
終了はCtrl+D
またはexit()
です。
リアルタイム補完とヒント
bpythonでは入力途中から候補とドキュメントがポップアップします。
Tabを押さなくても候補が見えるのが特徴です。
# 入力途中から候補とdocstringが自動で表示されます
import datetime
datetime.dat # ← 入力中に候補(date, datetime, ...)、下部にdocstringが表示
候補 (抜粋):
- date (class datetime.date)
- datetime (class datetime.datetime)
- timedelta (class datetime.timedelta)
Docstring (date):
class date(year, month, day) ...


(
を入力すると引数が表示される)候補は矢印キーやTabで選べ、Enterで確定できます。
入力の流れが途切れにくいのが利点です。
取り消し(Rewind)の使い方
bpythonの目玉機能がRewindです。
Ctrl+R
で直前の「実行単位」を巻き戻し、定義や変数の状態を1ステップ前へ戻せます。
# Rewindの例
x = 10
x += 1
print(x) # => 11 と表示されるはず
# ここで Ctrl+R を押すと、直前の "print(x)" が取り消される
# もう一度 Ctrl+R で、さらに1つ前のステップ(x += 1)も取り消せます
>>> x = 10
>>> x += 1
>>> print(x)
11
# (Ctrl-R 2回実行後)
>>> print(x)
10
RewindはREPL内部の状態を巻き戻しますが、ファイル書き込みやネットワーク送信など外部への副作用は元に戻りません。
カラー表示とシンタックスハイライト
bpythonは入力中に構文ハイライトが効くため、括弧の対応や文字列の閉じ忘れに気づきやすいです。
また、例外トレースバックも色分けされ、どこで失敗したかを素早く把握できます。
# 色分けの見え方は端末設定によります(概念例)
def area(r):
return 3.14 * r * r # 数値や演算子、キーワードが着色
area(2)
12.56

入力履歴と保存(:save)
bpythonはセッション中の入力をファイルへ保存できます。
:save
というコロンプレフィックスのコマンドを使います。
:save session.py # 現在のバッファ(入力内容)を保存
Saved to session.py
保存されたファイルは通常のPythonとして実行できます。
# session.py の例(保存された内容の一部)
import math
def area(r: float) -> float:
return math.pi * r * r
print(area(2))
12.566370614359172
IPythonとbpythonの違いと選び方
どちらも優れていますが、得意分野が少し違います。
用途に合わせて選ぶと幸せになれます。
機能の比較(補完・速度)
観点 | IPython | bpython | 備考 |
---|---|---|---|
起動・操作感 | 充実機能ゆえにやや重量級 | とても軽快 | 小規模実験はbpythonの快適さが光る |
補完 | Tab補完(豊富な候補) | 入力中にリアルタイム補完 | bpythonは「見る→選ぶ」が少ない打鍵で済む |
ドキュメント | obj?, obj?? で詳細 | 下部に自動表示 | どちらも学習効率が高い |
マジックコマンド | 非常に豊富(%timeit, %history, %run 等) | なし | 計測や再実行、保存はIPython有利 |
履歴・再実行 | %history, %rerun, _ など強力 | 履歴スクロール、Rewind | Rewindはbpython独自の快適機能 |
外部コマンド | !ls, !pip 等のシェル連携が強い | 連携は控えめ | IPythonは作業用シェルとしても優秀 |
拡張性 | 拡張/設定が豊富、Jupyter互換 | シンプル志向 | 解析・研究用途はIPythonが向く |
学習曲線 | 少しあり | ほぼなし | すぐ気持ちよく使えるのはbpython |
Windows相性 | 良好 | 追加セットアップが必要な場合あり | windows-curses や WSLで改善 |
迷ったらIPPython
総合力で選ぶならIPythonです。
マジックコマンドと履歴・保存機能が揃い、学習から本格的な分析、Jupyter連携まで一本化できます。
あとからbpythonを併用するのも簡単です。
サクサク書くならbpython
とにかく打って気持ちよく結果を見たいならbpythonです。
リアルタイム補完とヒントで、タイプ数が減り、関数名や引数を忘れても勢いが止まりません。
短い実験や関数の試作に最適です。
最初の一歩のチェックリスト
pip install ipython bpython
で両方入れる- IPythonで
%timeit
、%history
、obj?
を一通り試す - bpythonで入力中の補完とヘルプが出る感覚を確かめる
- bpythonの
Ctrl+R
(Rewind)で状態が戻ることを確認する - IPythonの
%paste
と%cpaste
で複数行貼り付けを体験 - 必要に応じてbpythonの
:save
でセッションを保存 - 画面が乱れたら
Ctrl+L
や!clear
で整理 - Windowsで問題があればWindows Terminal/WSLや
windows-curses
を検討
まとめ
IPythonとbpythonは、標準REPLで感じがちな物足りなさを解消し、学習と試行錯誤のスピードを大幅に引き上げる強力なツールです。
機能の厚みと再現性、Jupyter連携まで視野に入れるならIPython、入力体験の快適さと小回り重視ならbpythonが相性抜群です。
まずはどちらかを入れて、Tab補完とヘルプ、履歴、最低限の計測から始めてみてください。
きっと「書いて試す」が楽しくなり、Pythonの理解が一段と深まります。