Yomiage
メニュー

Python実践講座 20:卒業課題・集計と形式の変更に対応する

更新 2026/9/27 6:22:11 公開

投稿者: しゅりりん

この回では、動くコードへ要求を追加し、壊していないことを証明します。前提は第19回までです。

卒業課題

タスクにカテゴリを追加し、カテゴリ別の未完了件数を表示するstatsコマンドを作ってください。カテゴリの未指定はgeneralとします。空の一覧でもエラーにせず、件数が0であることが伝わる出力にします。旧バージョン1のJSONも読み、カテゴリを補って新形式へ移行できるようにします。

次にCSVへのexportを追加します。題名にカンマや引用符があっても壊れないようにし、出力の文字コードを決めます。表計算ソフトで開く用途では、先頭がイコールなどの値を式として扱う問題もあります。保存された原文と、表計算向けの安全な出力をどう分けるか、仕様へ書いてください。

解答へ至る設計例

Taskの生成時にカテゴリを正規化します。集計は list[Task] などのデータを受け取り、カテゴリから件数への辞書を返す純粋な関数にします。CLIは表示だけを担当し、保存形式の移行はloadの境界で行います。書き込み時は常に新しい版を保存し、未知の未来の版は拒否します。

テストは、旧形式、現行形式、未知の版、空データ、カテゴリの重複、全件完了、引用符を含む題名に分けます。CSVを再びcsv.readerで読み、項目が意図どおり戻ることを確認します。文字列の見た目だけを比較しないことが大切です。

合格基準

  1. 名前とオブジェクトの共有を図や言葉で説明できる。
  2. 関数、モジュール、型注釈で責務を分けられる。
  3. 例外、None、空の結果を用途に応じて区別できる。
  4. 外部入力を検証し、壊れた保存ファイルを上書きしない。
  5. 単体テストとCLIの実行テストを使い分けられる。
  6. 仮想環境と配布設定から、新しい環境で再現できる。

記事を閉じ、公式資料だけを参照して改修できれば、入門の例を写す段階から一歩進めています。速度を競わず、仕様を小さく決め、失敗ケースを確かめてください。

次の学習先

WebならHTTP、認証、DB、マイグレーションを土台にフレームワークへ進みます。データ分析なら配列演算、欠損値、統計の前提、結果の再現性を扱います。自動化なら再実行しても壊れない処理、ログ、設定、権限を学びます。用途が変わっても、境界の検証とテストは共通です。

公式資料

Pythonの公式目次とPython Packaging User Guideを、次の学習の入口にしてください。


Python全20回の目次 | 前の回

このブラウザでは Web Speech API が利用できません。

1 / 21 · 停止中