title: 在庫管理ツール description: CLIツール - アイテムの追加、数量の更新、ファイルへの保存ができます。
在庫管理ツール
Orla やあ。貨物室がめちゃくちゃだ。なくなってることに気づかずなくなってるものがあるし、たっぷりあるものを重複注文してる。ちゃんとした在庫ツールが必要なんだ。アイテムを追加して、数量を更新して、セッション間でファイルに保存する。クルー全員が実際に使えるようなやつ 📦
開発する内容
Commands: add / update / list / remove / quit
> add
Item name: Widget A
Quantity: 100
Price: 2.49
Added.
> list
Widget A qty: 100 £2.49 each total value: £249.00
> update
Item: Widget A
New quantity: 85
Updated.
> quit
Inventory saved to inventory.json.必要な知識
- Classes and objects - 個別製品用の
Itemクラス、コレクション管理用のInventoryクラス - Files and exceptions - JSONへの保存と読み込み、初回実行時の欠落ファイルのキャッチ
- Dictionaries and lists - クラスでラップする前後のデータ構造
- Numbers and arithmetic - アイテムごとの総価値の計算
- Control flow and functions - コマンドループ、コマンドごとに1つの関数
ヒント
Item は3つの属性を持つクラス。 名前、数量、価格。Inventory は Item のリストを管理し、メソッドを公開する: add、update、remove、list。
終了時に保存、開始時に読み込み。 ファイル読み込みを try/except でラップし、初回実行時の欠落ファイルがスクリプトをクラッシュさせないようにする。代わりに空の在庫で開始する。
総価値は表示の問題。 印字時に quantity × price を計算する。属性として保存する必要はなく、いつでも導出可能。
さらに進める
コアツールが動いたら:
- 在庫不足アラート。 リストを表示するときに、数量が定義した閾値を下回るアイテムにフラグを付ける。
- 検索。 部分一致で名前からアイテムを検索する
searchコマンドを追加する。 - レポートのエクスポート。 現在の在庫の通常テキスト形式の概要を
.txtファイルに書き込むexportコマンドを追加する。

