Day 7・小さく作って完成させる(実践)
動かして直す: エラーをAIと潰すループの体験
エラーは失敗ではなく手がかり。読む・AIに渡す・一箇所ずつ直すループを体験する。
エラーは敵ではなく道案内
初めての人はエラー(。プログラムが途中で止まって出す警告メッセージ)が出ると「壊した」と感じます。でも実際は逆で、エラーは「ここで、こういう理由で止まりました」と場所と理由を教えてくれる道案内です。プロも一日に何度もエラーを見ます。違いは、慌てず読むかどうかだけです。
Pythonのエラーは下に行くほど大事な情報が出ます。一番下の一行(例: NameError: name 'anser' is not defined)が「何が起きたか」の要約です。まずその一行を読みます。
Traceback (most recent call last):
File "summary.py", line 22, in main
result = format_result(anser)
NameError: name 'anser' is not definedなぜ一番下から読むのか
上の方はプログラムがどの順番で呼ばれたかの経路、下の方が最終的に何につまずいたかです。原因を知りたいときは結論(下の行)を先に読み、その上の File と line で「どのファイルの何行目か」を確認すると最短で場所にたどり着けます。
AIと潰すループ
エラーが出たら、次の順番を1周します。この順番自体を覚えることが今日のゴールです。
- 止める前に、エラーの一番下の行を声に出して読む
- エラー全文と、動かしたコードをそのままAIに貼る
- AIの説明のうち「原因は何か」を一文で自分の言葉に直す
- 直すのは一箇所だけ。直したらすぐ実行して確かめる
- 直らなければ、新しいエラーでまた1に戻る
やりがちな直し方
エラーを読まず、あちこち同時に書き換える。→ どの変更が効いたか分からず、別の不具合を増やす。
ループでの直し方
一番下の行を読み、原因を一文にし、一箇所だけ直して実行。→ 効いたか毎回はっきり分かる。
AIにはこう聞く
「このエラーが出ました。原因を初心者向けに一文で説明して、直し方を一箇所だけ教えて。コードは次の通りです」と書き、エラー全文とコードを貼ります。「一箇所だけ」と頼むと、まとめて書き換えられて何が効いたか分からなくなるのを防げます。
上のエラー例なら、原因は「変数名の打ち間違い(anser は answer のはず)」です。format_result(anser) を format_result(answer) に直す。これだけです。エラーの多くは、こうした綴り間違い・カッコの閉じ忘れ・字下げのズレといった小さなものです。
落とし穴: AIの修正をそのまま貼るだけ
AIが返した直し方をコピペして動いたら終わり、にすると、次に同じ種類のエラーが出たとき自分で気づけません。動いた後に「なぜ直ったか」を一文で言えるか確認してください。これがAI時代に「読める・直せる・説明できる」人になる分かれ道です。
print で途中を覗く
エラーが出なくても結果が変なときは、各段階の途中結果を print で表示すると原因が見えます。print("入力:", text) や print("AIの答え:", answer) を一時的に挟み、どこで期待とズレるかを確かめ、直ったら消します。これは一直線設計だからこそ効く確認法です。
読んでも腑に落ちない所は、AIに噛み砕いてもらいましょう。
理解度チェック
答えられれば、面接で説明できる状態に一歩近づきます。
Pythonのエラー表示で、何が起きたかの要約が最も分かるのはどこか。
エラーをAIと潰すループで推奨される直し方はどれか。
エラーが出たとき、あなたはどんな順番で対処しますか。AIをどう使うかも含めて自分の言葉で説明してください。
記述式です。まず自分の言葉で答えを考えてから、模範解答を開いて自己採点してください。