Lesson 3 / 変数エクスプローラとデバッガ
変数の中身をGUIで確認し、ブレークポイントで処理を止めて調べます。
変数エクスプローラとは
Spyder画面の右上にある 「Variable Explorer(変数エクスプローラ)」 は、
今コンソールにある変数を一覧表示してくれるパネルです。
print() をしなくても、変数の中身がそのまま見えるのがSpyderの強みです。
name = "Alice"
age = 25
scores = [80, 92, 76]
このコードを書いて F5 を押すと、変数エクスプローラーに
name・age・scores の3つが並びます。
名前 / 型 / サイズ / 値 がひと目で確認できます。
右上の「変数エクスプローラー」タブに、エディタで定義した3つの変数が並んでいます。
scores は list 型でサイズ 3、値が [80, 92, 76] と確認できます。
変数の中身を表で見る
リストや DataFrame をダブルクリックすると、
Excelのような表形式のビューが別ウィンドウで開きます。
import pandas as pd
df = pd.DataFrame({
"名前": ["Alice", "Bob", "Charlie"],
"点数": [80, 92, 76],
"合格": [True, True, False],
})
上のコードを F5 で実行し、変数エクスプローラーの df をダブルクリックすると次の画面が開きます。
値の大きさに応じて 色のグラデーションが自動で付き、データの傾向がひと目で分かります。
セルをダブルクリックすれば直接編集することも可能です。
デバッガを使う
「途中まで動いているのに、なぜか結果がおかしい」というときはデバッガの出番です。
① ブレークポイントを置く
処理を止めたい行の行番号の左をクリックすると、赤い丸(ブレークポイント)が付きます。 F12 でも切り替えできます。
② デバッグ実行する
| ショートカット | 動き |
|---|---|
| Ctrl + F5 | デバッグモードで実行(ブレークポイントで停止) |
| Ctrl + F10 | 次の1行に進む(ステップオーバー) |
| Ctrl + F11 | 関数の中に入る(ステップイン) |
| Ctrl + F12 | 次のブレークポイントまで進む |
試しに、次のコードで動きを確認してみましょう。
x = 10
y = 20
z = x + y
print(z)
- 3行目(
z = x + y)の行番号の左をクリックして赤い丸を付ける - Ctrl + F5 でデバッグ実行
- 3行目で処理が止まり、コンソールが
IPdbプロンプトに切り替わる
3行目の手前で処理が止まっており、変数エクスプローラーには
x=10・y=20 が並んでいます。
まだ実行されていない z は表示されていない点に注目(処理がこの行の直前で止まっている証拠)。コンソールの
IPdb [1]: プロンプトでは、ここで x や x*2 など好きな式を打って値を確認できます。
デバッグの基本フロー
1. 怪しい行にブレークポイント → 2. Ctrl+F5 でデバッグ実行 → 3. 変数エクスプローラで値を確認 → 4. Ctrl+F10 で1行ずつ進めて原因特定 → 5. 終わったら
1. 怪しい行にブレークポイント → 2. Ctrl+F5 でデバッグ実行 → 3. 変数エクスプローラで値を確認 → 4. Ctrl+F10 で1行ずつ進めて原因特定 → 5. 終わったら
IPdb に q + Enter、または「停止」ボタンで抜ける