【Python】IPythonの使い方:補完・ヘルプ・マジックコマンドによる効率化

IPython(Interactive Python)は、標準のPythonインタラクティブシェルを強力に拡張した対話型シェルです。入力補完、オブジェクト情報の参照、OSコマンドの実行などが容易に行えるため、データ分析やスクリプトの動作検証で広く利用されています。

ここでは、インストール方法から、実務で必須となる主要機能(補完、ヘルプ、マジックコマンド)について解説します。

目次

インストールと起動

IPythonは単体でインストールするか、Anacondaなどのディストリビューションに含まれています。

インストール

pip install ipython

起動と終了

ターミナル(またはコマンドプロンプト)で以下のコマンドを入力します。

# 起動
ipython

# 終了
exit
# または [Ctrl] + [D] キー

1. Tabキーによる強力な補完

IPythonの最大の特徴は、Tabキーによる入力補完です。変数名、関数名、モジュール名、さらにはファイルパスまで補完可能です。

In [1]: import datetime

# 'da' と入力して Tabキーを押すと、'datetime' や 'date' などが候補に出ます
In [2]: da<TAB>

# オブジェクトの後ろで '.' を入力して Tabキーを押すと、メソッド一覧が表示されます
In [3]: datetime.date.<TAB>
Display all 14 possibilities? (y or n)
datetime.date.ctime        datetime.date.isocalendar  ...

2. 「?」コマンドによるオブジェクト情報の確認

変数や関数の後ろに ? または ?? を付けて実行することで、そのオブジェクトの詳細情報を即座に確認できます。print() 関数などを書く必要はありません。

? : ドキュメント(Docstring)の表示

変数の型や、関数の引数定義、説明文を表示します。

In [1]: my_list = [1, 2, 3]

In [2]: my_list?
Type:        list
String form: [1, 2, 3]
Length:      3
Docstring:
Built-in mutable sequence.
If no argument is given, the constructor creates a new empty list.
The argument must be an iterable if specified.

?? : ソースコードの表示

関数の定義元のソースコードそのものを表示したい場合に使用します(Pythonで実装されている部分のみ)。

In [3]: def my_func(x):
   ...:     return x * 2
   ...:

In [4]: my_func??
Signature: my_func(x)
Docstring: <no docstring>
Source:
def my_func(x):
    return x * 2
File:      <ipython-input-3-xxxx>
Type:      function

3. マジックコマンドとシェルコマンド

IPythonには % から始まる独自の便利コマンド(マジックコマンド)と、OSのコマンドを実行する機能が備わっています。

主なマジックコマンド

コマンド説明
%timeitコードの実行時間を計測します(複数回実行して平均を出します)。
In [1]: %timeit [i**2 for i in range(1000)]
%run外部のPythonスクリプトファイルを実行します。
In [2]: %run myscript.py
%pwd現在の作業ディレクトリ(カレントディレクトリ)を表示します。
%cd作業ディレクトリを変更します。
%history入力履歴を表示します。
%pasteクリップボードにあるコードを整形して実行します(インデント崩れを防ぎます)。

OSコマンドの実行 (!)

先頭に ! を付けることで、lscdpip install などのOSコマンドを直接実行できます。

# ファイル一覧の表示
In [10]: !ls -l

# パッケージのインストール
In [11]: !pip install requests

4. 入出力の履歴参照 (_, In, Out)

直前の計算結果や、過去の入出力を変数として再利用できます。

  • _ (アンダースコア): 直前の出力結果(Out)を指します。
  • _N (Nは数字): Out[N] の結果を指します。
  • In: 入力履歴がリストとして格納されています。
  • Out: 出力履歴が辞書として格納されています。
In [1]: 10 + 20
Out[1]: 30

In [2]: _ * 2
Out[2]: 60  # 直前の結果(30) * 2 が計算される
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次