Pythonista debug

Python学習【365日チャレンジ!】32日目のマスターU(@Udemy11)です。

デバッグって言葉を聞くとプログラミングをやってる感がでます。

書いたスクリプトがきちんと動くかどうか、どこで挙動がおかしくなっているのかをチェックするのがデバッグです。

スクリプトのバグ(エラー)を見つけて解決するわけですが、Pycharmでは、デバッグのマークが虫になっています。

これは、バグ(bug)が虫を意味する単語であり、コンピューターの中に入り込んだ虫を見つけて正常な状態にもどすということで、虫のアイコンになっているみたいです。

iOS用のPyhonIDEであるPythonistaにももちろんその機能は搭載されていて、利用することが可能です。

今日は、Pythonistaのデバック機能を紹介します。

昨日の復習

昨日は、if文の基本を学習しました。

a = 10
if a > 1:
    print('a is big')
 
#出力結果 'a is big'

ifの横に書かれた条件を満たした場合、下の行が実行されます。
条件を満たしていない場合は何も実行されません。

a = -1
if a > 1:
    print('a is big')
else:
    print('a is small')
 
#出力結果 'a is small'

elseを加えることで、条件を満たさなかったときの動作を指定することができます。

a = 5
if a > 10:
    print('a is big')
elif a == 5
    print('a is five')
else:
    print('a is small')
 
#出力結果 'a is five'

elifはいくつでも加えることが可能ですが、同じ条件を指定した場合は、より上に記載されているコードのみが実行されます。

if文の中にif文を入れて入れ子にすることも可能です。

a = 2
b = 2
if a > 0:
    print('a is plus')
    if b > 0:
        print('b is plus')
 
"""出力結果
'a is plus'
'b is plus'
"""

この場合は、aが条件を満たした場合は、インデントが揃った次のif文は実行されますが、aが条件を満たさない場合は、その時点でif文を終了するので、bの条件をチェックすることはありません。

aが条件を満たさない場合もbのチェックをしたい場合は、2つ目のifを最初のifとインデントを合わせて記載します。

a = -2
b = 2
if a > 0:
    print('a is plus')
if b > 0:
    print('b is plus')
 
#出力結果 'b is plus'

インデントの位置は非常に重要で、スペース1つずれていてもエラーが起こるので、インデントの位置はしっかりと揃えるようにしましょう。

いろいろとコードの書き方を試してみるとおもしろいのですが、ちょっと疲れているときは頭が理解しようとしてくれません。
ほんと、I cna’t help getting old.の状態になりつつあります。

それでは、Pythonistaのデバックをチェックしてみましょう!

長押しでBreakpointをセット

Pythonista breakpoint

コードを書いたあと、デバックで処理を止める場所を長押ししたあと表示される項目の中から【Breakpoint】をタップすると、右に●マークが入ります。
必要に応じてBreakpointを複数追加してみてください。

実行して【Debug】を選ぶ

Pythonista debug

Breackpointが設定されたプログラムは、通常の実行でも使う右上の三角ボタンをタップするとDebugかRunを促すダイアログが表示されるので、Debugをタップするとデバッグが開始します。

Pythonista デバッグ

Debugをタップすると左上部にデバッグウインドウ!?的なものが表示されます。

タップして順番に実行する

Pythonista デバッグ

デバッグでは、最初にbreakpointを設定した位置でプログラムが止まり、次へアイコンをタップすると、次の行のコードが実行されます。

次へアイコンを押すたびに左三角矢印の部分が実行されて、条件が満たされたときにConsoleに実行結果が表示されます。

Python debug

この表示のあと、まだ実行するコードが残っている場合は、次へアイコンをタップすると、コードが進んで最終的にすべての行を実行し終えたら、Consoleに最終の出力結果が表示されます。

デバッグで動きがわかる

現在学習している内容は、まだまだ初歩の段階なので、条件分岐が入り組んだり、大量のデータを扱ったりしていません。
なのでデバッグを使う必要はありませんが、デバッグを使うと、どのような流れでプログラムが動いているのかがわかるので、プログラムへの理解が進みます。

もちろんもっと扱うデータの個数が増えたり、もっと複雑なコードだったりする場合は、どこがおかしくてエラーが起こっているのか調べるためにはデバッグは必要不可欠な機能です。

デバッグはプログラムを学習する以上、避けて通れない道のりなので、何度も復習してマスターするようにしましょう。

それでは、今日もGood Python!