UdemyでPythonを勉強した結果を残すブログ。

40歳でプログラミング始めて転職までいけるのかを実録してみます。

DAY 13 よくあるバグについて

今回はバグについて。

バグはプログラマーには絶対ついて回るものですが、

大事なのはバグを見つけた時、どこがエラーなのか

どこを直せばいいのかを知ること。

 

よくあるエラーをいくつか学ぶ。

 

1・randomなどのrange(1,20)などの設定

 

結構間違えやすいエラーで、この場合だと

if i == 20:

    print("finish")

 

 とつい書いちゃうけど、この場合はrange(1,20)は19までしか範囲に入らないので

注意。

 

でもrandom.randint(1,100)だと100も含まれるのでやっかい。

 

 

2・1、2回では正常だけど何回かやるとエラーになる場合

 

これもよくある、random使ってる時にほとんど大丈夫だったけど

一番最後とか一番最初選んだらエラーになっちゃうパターン。

 

3・比較する時の=のつけ忘れ

 

if i < 2000 and i > 1950:
print("....")

elif i > 2000:
print("....")

一見良さそうな感じだけど、i がちょうど2000の場合は

なにも出力されないエラーが起きる。

どちらかに=をつけてあげないと2000がカバーできない。

 

4・inputの結果が整数なのに文字列で出ちゃう

 

answer = input("何歳?")

if answer < 20:
print("未成年")

else:
print("大人")

 

答えを数字で欲しいけどこのままだとエラーになる。

inputはstrings なのでint()で囲ってあげないといけない。

 

5・エラーが出たらprintで確認してみる。

ながいプログラムを書いているとAがおかしいのはBの計算がおかしいから、という場合もあってエラーがわかりにくくなる。

 

そういう場合は怪しいところをprintでちゃんとその通りにいっているか確認するのが大事。

 

6・デバッガーソフトで確認するのもあり。

Thonnyというソフトは1つ1つをステップで動かしてくれる機能があるので便利だし、

python tutorというサイトにコードを入れると同じようにステップでわかりやすくpythonの動作の流れを見せてくれる。

pythontutor.com

 

7・どうしてもわからない場合は人に聞く・ググる

最終これ。

ja.stackoverflow.com

 

qiita.com

 

自分で見落としている部分を他の人が解決してくれる。

とても助かる。

 

以上でDAY13終わり。