見出し画像

Debugについて学ぶ

こんにちは、皆さん!
Jboyです。寒くなってきましたね。最近またコロナ感染者も増えてきて遂に橋本家でも感染者が出てしまいました😭
僕は感染しなかったようですが….

それは、さておき最近業務で社長がPyCharmでPythonのDebugをやっている姿や論理的な説明をしたり、ホワイトボードに図を書いているの見てカッコいいなと思い僕も速くあんな風になりたいなと、平日は朝5時に起きて、土日は1日中勉強してます。

今回はDebugを学んでみた

こちらの動画が分かりやすくて、仕事でも同じ操作をしていたので、なんでこのボタンを押すのかが分かりました!
Udemyの講座買うまでもなかった😅

このコードだと、変数がabcの3つあって、数値が123入っていて、print文で変数cの中身を見ています。

# Debug
# Tutorial

a = 1
b = 2
c = 3

print(c)

でも途中で変数bの内容をみたい時にどうすればいいのか確認したい時があります。
そんなときにDebugを使います。IntelliJだと便利な機能がそろっているので設定が必要なところもあるけど、Debugや補完機能は優秀なので気に入ってます!
Flutterで個人開発するときは、Android Studio使ってますね。
Visual Studio Codeでやってたときもあるが、IntelliJの方が使いやすいときもあったりする。
Visual Studio Codeだとシュミレーターがなぜか出てこないことがあった?

Debugの仕方

5行目の変数bのところの左をクリックすると赤い丸ポチを打つことができます。
これがブレイクポイントというものですね。PyCharmではブレイクポイントを打ったら右クリックをして虫のアイコンを選択してクリックするとDebugを実行できます。


ブレークポイントを打ったところで、プログラムは止まるので途中まで動いているか、変数に値が入ってきているのかを確かめることができます。


丸で囲んでいるStep Overを押すと1行ずつプログラムを実行できます。今まで1行ずつ動いているのは、知っていたけどチュートリアルをやって講師が説明しているのを聞かないと、「あっそうだったな!」と気づかなかった😅
これで、Step Overはどんなボタンか説明できる。

自分でもプログラムを書いて試してみた!
if文だと、どんな動きをするのか見てみると、変数ageの値は15だから、trueの「18歳以上です!」が表示される処理は実行されないはず。
今回だとfalseになるので、elseの「18才以下です!」が実行される。


if文のところでプログラムを止めるとint型の15の値が入ってきてるのが、確認できました。
Step Overで1行進めるとelseの処理が実行されたのが確認できました。
プロはこんな風に、チエックしてるんだなと思った😅

関数もDebugしてみた

Listの値を確認して、1番目の0番目を取り出して、「Good Evening」を表示する。


今度は結構ハマった辞書のリストからデータを取ってみる
13行目の関数の中の変数logDataにブレークポイントを打って、リストのデータを表示して、辞書型のデータを取り出してみるのをPythonコンソールでやってみました。

# Debug
# Tutorial

db = [
    {"id": "X0000", "name": "TanakaTaro", "age": 25},
    {"id": "X1111", "name": "TanakaHanako", "age": 23},
    {"id": "X2222", "name": "SatouTakeo", "age": 28},
]


# リストを戻り値として、返す関数を定義
def data():
    logData = db
    return logData

data()

丸で囲んでいるConsoleをクリックして、ここで、関数のdata()を実行するすると、リストの値が出てくる!
ここで、l_name = [ d['name'] for d in list_person]と入力して、Shift + Enterを押して、print(l_name)と入力して、Enterを押すとidというkeyだけ辞書から取り出すことができる。


少しづつですが、新しい仕事でやっていることを理解できるようになってきました。
他の言語やIntelliJのIDEを使っていたので、覚えるのはプログラミング分からない人に比べると速いと思います😅
先輩方は普段から、どうやったら目的を実現できるのか考えながら、プログラムを書いているのでしょうね。

この記事が気に入ったらサポートをしてみませんか?