動かして確かめる
読めても、動くとは限らない
差分を読んで納得できたとしても、それは書いてあることが正しく見えるというだけです。実際に動くかどうかは別の話です。
プレーンテキスト
読んで分かること 何をしようとしているか
動かして分かること 本当にそうなるか読みで見抜けない不具合は、たとえば次のようなものです。関数名の綴り違い、辞書の鍵の名前違い、リストが空のときだけ起きるエラー。どれも文章としては自然に読めます。走らせるまで気づけません。
変更のあとは必ず動かす。 例外はありません。
3つの入力で叩く
適当に1回動かして終わりにすると、意味のある検証になりません。最低でも次の3つを試します。
プレーンテキスト
普通の入力 何件かある、ありふれた記録
端の入力 空、1件だけ、ゼロ円
変な入力 マイナス、想定外のカテゴリAI が壊しがちなのは2つ目と3つ目です。普通の入力は AI も頭の中で試しているので、たいてい通ります。端と例外を自分で試すのが、人間側の仕事になります。
期待値を先に決める
動かす前に、答えを自分で出しておいてください。
プレーンテキスト
悪い 動かしてみる。1300 と出た。合ってそう
良い 食費が500と800だから1300のはず。動かす。1300。合っている先に期待値を決めないと、出てきた数字を見てから「たぶんこれで合っている」と自分を納得させてしまいます。これは検証ではなく追認です。
先に答えを持ってから走らせる。 順番を逆にしないでください。
壊れていたら、壊れ方ごと伝える
動かして違う結果が出たら、そのまま AI に戻します。このとき、入力と期待値と実際の値を3つ揃えて渡します。
プレーンテキスト
悪い 動きません
良い 空のリストを渡すと KeyError が出ます。0を返してほしいです「動きません」では、AI は当てずっぽうで直します。再現できる情報を渡せば、1回で直ります。修正の往復は第4章でくわしく扱います。
今回の演習では、平均を出す関数を直します。記録が空のときにどうなるかを、自分の頭で先に考えてから指示を書いてください。
完成条件
- 触ってよいのは kakeibo.py だけです
- 平均の小数部分は切り捨て、戻り値は整数にします
- averageAmount 関数の戻り値で採点します