いまさらだけど Python を学習する:デバッグの準備

さて、今回は「いまさらpython学習」の3回目です。前回までに実行環境のインストールと、標準の IDE である IDLE を利用し、エディタに書いたコードが実行できるところまでを確認しました。今回は、IDEを使う最大のメリットであるデバッグについて、確認していきたいと思います。

前回の記事は以下を参照

さて、今回は、「いまさらpython学習」の2回目ということで、統合開発環境(IDE)を準備していきたいと思います。IDEというと一気に難しく聞こえますが、先日動作確認で、コマ...
さて今更ですが、Python学習を始めていこうと思います。今日から数回に分けてPythonの学習記事を書いていきたいと思います。「Python をつかってみたい」「Python...
スポンサーリンク

デバッグ機能の確認

デバッグの基本である、「変数の中をのぞく」、「ステップ実行をする」、「ブレークポイントで止める」などについて確認したいと思います。

まずは以下のように、変数s1とs2に文字列を代入し、変数sにs1とs2を結合した文字列を代入し、変数sを表示するシンプルなコードを書いてみます。前回作ったのprint文だけのコード(test.py)を修正します。

1
2
3
4
s1='Hello '
s2='Python.'
s=s1+s2
print(s)

変数の中をのぞく

デバッガーを使うと、変数に何が入ったかを確認することができます。今回、s1やs2、sといった変数を用意しているので、この変数をのぞいてみましょう。

シェルウィンドウの「Debug>Debugger」をクリックします。

Debug Controlウィンドウが立ち上がり、シェルウィンドウに[DEBUG ON]の文字が出たと思います。これでデバッグモードがONになりました。

 

続いて、前回のようにコードを実行します。エディタウィンドウで[Run>RunModule]をクリックします。

すると、シェルウィンドウと、DebugControlウィンドウの表示が変わります。この状態は、test.pyの1行目で止まっている状態です。DebugControlウィンドウで、「Over」をクリックします。

s1 に Hello が代入されたことが見えます。同様に「Over」を実行していくと、s2 や sにも文字列が代入されていく様子が見えます。ひとまずこれで変数の中は見えました。

「Step」でも同様に変数の変化を観察をすることができますが、print の行で「Step」をクリックすると、printの中に入ってしまい、戻ってこないので「Go」で進めましょう。

ステップ実行をする

先ほどの変数の中をのぞくための確認でも、十分ステップ実行していましたが、コード量が多くなったり、複雑になってくると、行数だけではなく実際のソースコード上の「どこ」を実行しているかを可視化してほしいです。

DebugControlウィンドウの「Souce」にチェックを入れてから、エディタウィンドウで[Run>RunModule]をクリックします。

操作は先ほどと同じで、DebugControlウィンドウの「Over」をクリックしてステップ実行していきます。「Over」をクリックすることで、エディターウィンドウで1行ずつハイライト(この例では灰色)が移動していきます。これで現在実行している箇所が視覚的に分かります。

ブレークポイントで止める

コードの量が増え、より複雑になっていくと、目的の行まで一気に進めたくなります。(※100回も「Over」をクリックなんてしたくないですよね・・。)そんな時に役に立つのが、ブレークポイントです。

エディターウィンドウのブレークポイントを設定したい行で、右クリックし「Set Breakpoint」を選択します(左の画像)。ブレークポイントが設定されると、その行がハイライト(この例では黄土色)されます(右の画像)。

操作は先ほどとほとんど同じで、DebugControlウィンドウの「Souce」にチェックを入れてから、エディタウィンドウで[Run>RunModule]をクリックします。DebugControlウィンドウで、「Go」をクリックすると、ブレークポイントを設定した行まで実行された状態で、停止します。実際のデバッグでは、ここから「Over」で一行ずつ実行していきます。

これで一通り、IDLEを使って、pythonの学習を行う準備ができました。お疲れさまでした。

エディタウィンドウで、Run Module を何度もクリックすることになりますが、マウス操作が手間になっていきます。F5 キーがショートカットとして用意されていますので、有効活用しましょう。