「Pythonプログラミングを始めたけどエラーばかりで全然勉強が捗らない」
というプログラミング初心者向けに書いた記事です。
エラーばっかり出てプログラムが全然動かないとモチベーションも下がりますよね。
挫折の原因にもなるので初心者にとってエラーを減らすことは割と重要です。
本記事の内容は以下の通り。
・Pythonのエラーを減らす方法
・Pythonのエラー検出自動化を進めよう
エラーを減らす仕組みづくりすることが大事です。
少しずつでいいのでエラーを見つける仕組みづくりを進めましょう。
Pythonのエラーを減らす方法
・プログラミングエディタを使おう
・プログラミングのテストを自動化しよう
プログラミングエディタを使おう
プログラミングをするなら専用のエディタはほぼ必須です。
プログラミングエディタを使うと以下のメリットがあります。
・定義済みの変数や関数を自動保管できる
・構文エラーがあれば見つけられる
・関数検索・クラス検索などプログラミングに特化したした機能がある
メモ帳でもできますが、初心者の頃はスペルミスを見つけるのも一苦労だと思います。
スペルミスを探すのに時間を使っていたら全然勉強が捗りません。
エディタを使って少しでもミスを減らす時間を増やしましょう。
関連記事>>プログラミングに専用エディタを使った方がいい5つの理由
PythonのエディタならPyCharmがおすすめです。
PyCharmとは?エディタ概要と活用する3つのメリットを紹介
プログラミングのテストを自動化しよう
プログラムを作ったらテストコードを作成してテストの自動化をしましょう。
テストコードを書いておくことで、次にそのプログラムを修正した時に入出力にミスがないか即座にチェックすることができます。
プログラムを書いたらテストコードを書くという癖をつけておくと良いですね。
テストコードなので時間を割く必要はありません。簡単なコードでも良いしぐちゃぐちゃでも問題なしです。(他の人が見るプログラムならわかりやすい方がいいですが)
最初は1ケース書くだけでも良いです。
一気に全てのケースを作ろうとするとモチベーションだだ下がりですが、1ケース書くだけならすぐできると思います。
1日1ケースでも10日あれば10ケースになります。
10ケースあればテストがかなり楽になりますね。
できる範囲でいいので徐々に増やしていきましょう。
客観的にチェックできる仕組みを考えよう
一度正しいと思い込むとミスを見つけるのが非常に難しくなります。
参考書やドキュメントを何度読み返しても問題を見つけられる可能性は低いですね。
同様にソースコードやエディタを何度見直しても見つけることは困難です。
なので客観的にミスを見つけられる仕組みを考えましょう。
例えば以下のような方法があります。
・サンプルコードと徹底的に見比べる
・チェックリストを作る
・時間を置いて見直す
・誰かに見てもらう
サンプルコードと徹底的に見比べる
サンプルコードがあるならサンプルコードと徹底的に比較しましょう。
自分のコードだけを見るとどうしても「自分のコードに問題があるわけない」と思い込んでしまうのでミスを見つけるのが非常に難しいです。
しかし、サンプルコードと比較すれば「自分のコードとサンプルコード」の違いからミスを見つけることができます。
できれば目視だけではなくコンペアツールを活用するとよいです。
Pythonの場合はPyCharmで簡単にソースコードのコンペアができます。
簡単にミスが見つけられるのでかなりおすすめな方法です。
関連記事>>PyCharm無料版のダウンロード方法と基本的な使い方
また、正しく動いているように見える場合でも思わぬミスが見つかるかもしれません。サンプルコードとの比較はできる限りやっておきましょう。
チェックリストを作る
マトリックスなどのチェックリストを使う方法です。
参考書を元にパラメータ名と値を書き出してチェックします。
チェックリストは多くの現場のプログラムテストでも用いられいる方法であり、かなり有効な方法でもあります。
機械的にチェックできるのでただコードを読むよりも客観的なチェックがしやすいです。
作成は手間ですが、一度作ってしまえば何度も使いまわせます。
チェックリストは作成に知識やスキルが必要です。
初心者がチェックリストだけでチェックするのは難しいので最初は他の方法も併用しましょう。
時間をおいてから見直す
人間は何か行動をした後は一種のハイ状態になっているので自分の行動を冷静に見直すのが難しいです。
プログラムを書いた後も同様で「間違いなどあるはずがない」と思い込んでしまい冷静に自分のコードを見直せません。
例え凡ミスであっても見つられない可能性があります。
しかし、時間を置くとだんだん冷静になってくるので第三者の視点で自分のコードを見直すことができます。
3日くらいは空けた方が良いですが、「そんな待てない」という人も多いと思うので最低でも1日は空けましょう。
誰かに見てもらう
友人・同僚・上司など誰でもいいので第三者に見てもらう方法です。
「3日も待てない」という人はこちらの方法がおすすめ。
Pythonエラー検出の自動化を進めよう
上記で紹介した方法の共通点としてはいずれも「自動でエラーを検出すること」です。
エラーは目視で見つける方法と自動で見つける方法がありますが、自動で検出できるものはできるだけ自動で検出した方が良いでしょう。
エラーをできるだけ自動で検出した方がいい理由は以下の通り。
・目視で見つけるのは効率が悪い
・初心者が時間を使うべきところはエラーの検出ではない
・人間はミスをする生き物
目視で見つけるのは効率が悪い
初心者のうちは何がエラーかということを見つけるのに非常に時間がかかります。
10分、20分調べてただのスペルミスということもよくある話。
一度なら10分ですが、スペルミスなどは割とよくあるので、10回、20回と続けば100分にも200分にもなるのでバカにできないです。
しかし、エディタであればスペルミスなどの単純なミスはある程度見つけてくれます。
単純ミス調査の時間を減らせるのでプログラミングにだけ集中できますね。
初心者が時間を使うべきところはエラーの検出ではない
「スペルミスとか目視でエラーを見つける能力って大事じゃないの?」
と考える方もいると思います。
目視でエラーを見つける能力が無駄とまでは言いませんが、スペルミスの目視検出能力が上がってもプログラミングスキルの上達には直結しません。
目視検出能力ができれば勉強効率は確かに上がりますが、効率を考えるならプログラミングのエディタを使った方が遥かに良いです。
また、エディタで検出できないものであってもテストツールや自作でテストを書けば目視より早く見つかります。
目視確認に労力を割くよりもテストプログラムの作り方を勉強して精度を上げる方が遥かに効率が良いです。
目視でミスを見つける能力もあるに越したことはありませんが、初心者のうちはプログラミングスキルアップが最優先。
単純エラーに時間を使うのはやめましょう。
人間はミスをする生き物
人間はミスをする生き物です。
たとえ上級者でも必ずミスはします。
目視だけだと見逃す可能性が高いです。
ダブルチェックしようがトリプルチェックしようがこれは同じ。見逃す時は見逃します。
エディタやテストツールであればツール自体がバグっていない限りミスを見逃しません。
人間のミスを拾うためにもテストツールの導入は重要です。
よくあるエラーの解決方法
よくあるエラーの解決方法についてまとめています。
can only concatenate(型不一致)
「can only concatenate〜」は型不一致の場合に起きるエラーです。
例えば以下のような計算。
"python" + 3
上記は文字列型の変数と整数型の変数の計算を行っているため型不一致により「”TypeError: can only concatenate str (not “int”) to str”」となります。
Pythonは型を宣言しなくても変数を定義できるので、初心者の頃は型の存在を忘れてしまいがちです。
しかし、Pythonにも当然データ型があります。
型の存在を理解すればこのエラーが起きることを大幅に減らすことが可能です。
can only concatenateの対処方法〜Pythonエラー対策〜
failed with error code 1
pipの不具合で発生するエラーです。
このエラーが出た場合は「pip install –upgrade pip setuptools」を最新版にアップデートしましょう。
【エラー解決記録】「”python setup.py egg_info” failed with error code 1 」
終わりに
プログラミングにエラーはつきものです。
例え上級者であってもエラーを完全に避ける方法はありません。
エラーを減らすためには目視確認よりもエラーを減らす仕組みを作ることが大事です。
エディタやテストツールを活用して自動検知できる範囲を広げていきましょう。
おすすめ記事Python入門者のための100日勉強方法
PythonプログラミングTOP>>Pythonプログラミングの始め方まとめ