Lesson 3 / 変数エクスプローラとデバッガ

変数の中身をGUIで確認し、ブレークポイントで処理を止めて調べます。

変数エクスプローラとは

Spyder画面の右上にある 「Variable Explorer(変数エクスプローラ)」 は、 今コンソールにある変数を一覧表示してくれるパネルです。
print() をしなくても、変数の中身がそのまま見えるのがSpyderの強みです。

name = "Alice"
age = 25
scores = [80, 92, 76]

このコードを書いて F5 を押すと、変数エクスプローラーに nameagescores の3つが並びます。 名前 / 型 / サイズ / 値 がひと目で確認できます。

変数エクスプローラーに name, age, scores が表示された画面 右上の「変数エクスプローラー」タブに、エディタで定義した3つの変数が並んでいます。 scoreslist 型でサイズ 3、値が [80, 92, 76] と確認できます。

変数の中身を表で見る

リストや DataFrame をダブルクリックすると、 Excelのような表形式のビューが別ウィンドウで開きます。

import pandas as pd
df = pd.DataFrame({
    "名前": ["Alice", "Bob", "Charlie"],
    "点数": [80, 92, 76],
    "合格": [True, True, False],
})

上のコードを F5 で実行し、変数エクスプローラーの df をダブルクリックすると次の画面が開きます。

dfをダブルクリックして開いたDataFrame表ビュー 値の大きさに応じて 色のグラデーションが自動で付き、データの傾向がひと目で分かります。 セルをダブルクリックすれば直接編集することも可能です。

デバッガを使う

「途中まで動いているのに、なぜか結果がおかしい」というときはデバッガの出番です。

① ブレークポイントを置く

処理を止めたい行の行番号の左をクリックすると、赤い丸(ブレークポイント)が付きます。 F12 でも切り替えできます。

② デバッグ実行する

ショートカット動き
Ctrl + F5デバッグモードで実行(ブレークポイントで停止)
Ctrl + F10次の1行に進む(ステップオーバー)
Ctrl + F11関数の中に入る(ステップイン)
Ctrl + F12次のブレークポイントまで進む

試しに、次のコードで動きを確認してみましょう。

x = 10
y = 20
z = x + y
print(z)
  1. 3行目(z = x + y)の行番号の左をクリックして赤い丸を付ける
  2. Ctrl + F5 でデバッグ実行
  3. 3行目で処理が止まり、コンソールが IPdb プロンプトに切り替わる
3行目でブレークポイント停止中、変数エクスプローラーにx=10, y=20が表示されている画面 3行目の手前で処理が止まっており、変数エクスプローラーには x=10y=20 が並んでいます。 まだ実行されていない z は表示されていない点に注目(処理がこの行の直前で止まっている証拠)。
コンソールの IPdb [1]: プロンプトでは、ここで xx*2 など好きな式を打って値を確認できます。
デバッグの基本フロー
1. 怪しい行にブレークポイント → 2. Ctrl+F5 でデバッグ実行 → 3. 変数エクスプローラで値を確認 → 4. Ctrl+F10 で1行ずつ進めて原因特定 → 5. 終わったら IPdbq + Enter、または「停止」ボタンで抜ける