稼働中

フリーソフト( 9)Thonny Python IDEの使い方③ デバッグ

Thonny Python IDE  ③ 使い方とデバッグ

Thonnyは初心者向けのPython IDE(統合開発環境 Integrated Development Environment)です。
前回、前々回で説明していなかったDebugについて主に記載します。windows環境下の場合です。※以下、コマンドプロンプトと表記するところをThoonyパネルがterminalになっているのでターミナルと表記しています。

使い方

Thonnyの使い方を雰囲気だけ説明します。メニューにある各項目の詳細はフリーソフトの7、8回を参照してください。

Pythonのコードを書くところは2か所あります。editor部とshell部です。
thonnyメインパネル

①Shellで実行

Shellでは以下のように一行づつ書いて行きます。変数があれば右上のVariables欄に表示されていきます。最後にenterで実行結果が表示され、次行で入力待ちの「>>>」カーソル表示になります。
その場限りの実行になります。コードの保存などはできません。変数はリセットするまで残っているようです。
shell

②editorで作成

editor窓に以下のコードを書いて保存します。「foo.py」で保存しました。実行して見ます。
赤枠のRunボタン(F5、メニューバー>Run>Run current script)で実行します。右上のVariablesで変数の状態が確認できます。
Shell、Assistant枠にエラーが表示されました。6行目がエラーの原因のようです。文字に非整数は掛けられないエラー内容のようです。

editor

下のように、整数に変更しました。実行します。
エラーが消えd、eの値が表示されました。Variablesで変数eの値が確認でき、Assistantの表示も良さげの「looks good」になりました。ターミナルで実行することもできますが、私のような素人は、この2つが主な使い方です。

修正後

デバッグ

デバッグの使い方について雰囲気だけ説明します。
赤枠のボタンでデバックができます。メニューから「Run>Debug・・」でも選択できます。

デバッグ

虫のアイコンをクリックします。虫のアイコンをクリックしてデバックモードになると虫アイコンが無効になり、隣のボタンが4つが有効になります。各ボタンはStep over、into、out、resumeです。

以下は赤のSTOPアイコン>>虫アイコンの状態です。虫アイコンのデバッグモードはnicerです。メニューのRunからfasterモードも選択できます。素人の私にはこちらのnicerモードが良さそうです。

Shellの表示が %Debug foo.py となりました。

虫アイコンでスタート

Step over

虫アイコン横のStep over(F6)アイコンをクリックしてみました。Variablesを見ると変数aに’abc’の文字が代入され次のステップがハイライトされました。

Step Over

以下は、さらにStep over(F6)で進めて5行目がハイライトされた状態です。この状態でStep into(F7)をクリックすると、式の内部に入ります。
下段に示したように「a+b」がハイライトされ、さらにF7で進めると「a」がハイライトになり、さらにF7で進むと「a」に「abc」が代入されハイライトの色も変わります。
このままF7を押して6行目がハイライトされるまで進めました。「c」に「abcdefg」が代入されています。文字列は足し算ができるのが分かります。
ハイライトの色は黄色が選択、緑が代入、水色が結果のような感じです。

式の内部へ

Step over(F6)で進めて5行目がハイライトされた状態です。この状態でStep outをクリックするとデバッグ動作を抜けて以後を実行します。

Step out

Step intoで入っている場合はStep outを続けても、その行の命令を抜けるまではStep intoを続けるようです。
例えば、先のStep intoで入って「’abc’ + b」の状態でStep outを繰り返して押して「’abcdefg’」まで進みます。その後のStepでデバッグ動作を抜け、それ以後を実行するようです。

抜ける

Step back

メニューバーから「Run>Step back(Ctlr+b)」でステップの後戻りができます。
例えば、上図の「’abc’ + b」の状態でStep backすると下図になりました。Step intoの状態でも後戻りできるようです。

Step back

Run to cursor

カーソル行の前までデバッグを実行します。メニューバーから「Run>Run to cursor(Ctrl+F8))」を選択します。虫アイコンでデバッグモードに入り、カーソルを9行目に当てました。「Run to cursor」を行います。

Run to cursor

print(e)がハイライトされました。print(d)は実行されShellに結果が表示されていますが、print(e)は出力されていません。カーソル行の前までデバッグを実行したようです。

カーソル前まで

Resume

デバッグ途中で再開するにはResumeを押します。先のようなStep intoの状態でもデバッグ動作を抜けて実行を再開します。

Resume

fasterモード

デバッグモードにfasterがあります。メニューバーから「Run>Debug current script(faster)」で変更できます。詳しくは分かりませんがStep intoの機能はなさそうです。Step intoを押してもStep overと同じ動作のようです。
また、Step backも使えないようです。

fasterモード

Shellの表示が %FastDebug になっています。

FastDebug

まとめ

ThonnyのPythonコードの書き方と実行、デバッグの使い方について記載しました。作成したPythonのプログラムでエラーの原因、意図しない結果が出るような場合にデバッグが有効だと思います。
私は素人なのではデバッグを使うほど長い、難しいプログラムは作成しないのですが・・・。簡単な使い方でデバッグできるので便利だと思います。